From e6a561801469db07ae08c93a67217ed04edfa4f7 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Thu, 18 Sep 2025 18:30:06 +1000 Subject: [PATCH] moved to microsite --- ...eploy.yml.disabled => prod-web-deploy.yml} | 0 ...eploy.yml.disabled => test-web-deploy.yml} | 0 README.md | 347 +- package-lock.json | 527 + package.json | 2 +- .../docgen/provider-data/headerContent1.txt | 10 +- .../docgen/provider-data/headerContent2.txt | 10 +- provider-dev/openapi/.gitkeep | 0 .../src/vercel/v00.00.00000/provider.yaml | 179 + .../vercel/v00.00.00000/services/aliases.yaml | 859 ++ .../v00.00.00000/services/artifacts.yaml | 498 + .../v00.00.00000/services/authentication.yaml | 532 + .../services/billing_settings.yaml | 79 + .../vercel/v00.00.00000/services/cache.yaml | 69 + .../vercel/v00.00.00000/services/certs.yaml | 300 + .../vercel/v00.00.00000/services/checks.yaml | 1044 ++ .../v00.00.00000/services/deployments.yaml | 6734 +++++++++ .../src/vercel/v00.00.00000/services/dns.yaml | 884 ++ .../vercel/v00.00.00000/services/domains.yaml | 1224 ++ .../v00.00.00000/services/edge_config.yaml | 968 ++ .../v00.00.00000/services/integrations.yaml | 1109 ++ .../v00.00.00000/services/log_drains.yaml | 907 ++ .../services/project_members.yaml | 345 + .../v00.00.00000/services/projects.yaml | 11897 ++++++++++++++++ .../vercel/v00.00.00000/services/secrets.yaml | 533 + .../vercel/v00.00.00000/services/teams.yaml | 3140 ++++ .../vercel/v00.00.00000/services/user.yaml | 1975 +++ .../v00.00.00000/services/webhooks.yaml | 597 + website/docs/.gitkeep | 0 website/docs/index.md | 96 + .../docs/services/aliases/aliases/index.md | 436 + .../services/aliases/deployments/index.md | 212 + website/docs/services/aliases/index.md | 33 + .../services/artifacts/artifacts/index.md | 237 + website/docs/services/artifacts/index.md | 33 + website/docs/services/authentication/index.md | 33 + .../authentication/user_tokens/index.md | 408 + .../billing_settings/data_cache/index.md | 99 + .../docs/services/billing_settings/index.md | 33 + .../cache/data_cache_purge_all/index.md | 101 + website/docs/services/cache/index.md | 33 + website/docs/services/certs/certs/index.md | 243 + website/docs/services/certs/index.md | 33 + .../docs/services/checks/deployments/index.md | 522 + website/docs/services/checks/index.md | 33 + .../docs/services/deployments/builds/index.md | 235 + .../services/deployments/deployments/index.md | 836 ++ .../docs/services/deployments/events/index.md | 184 + .../docs/services/deployments/files/index.md | 254 + website/docs/services/deployments/index.md | 35 + .../services/dns/domains_records/index.md | 323 + website/docs/services/dns/index.md | 33 + website/docs/services/domains/config/index.md | 145 + .../services/domains/domain_registry/index.md | 151 + .../docs/services/domains/domains/index.md | 565 + website/docs/services/domains/index.md | 36 + website/docs/services/domains/price/index.md | 147 + website/docs/services/domains/status/index.md | 135 + .../services/edge_config/edge_config/index.md | 386 + website/docs/services/edge_config/index.md | 36 + .../docs/services/edge_config/item/index.md | 165 + .../docs/services/edge_config/items/index.md | 192 + .../docs/services/edge_config/token/index.md | 217 + .../docs/services/edge_config/tokens/index.md | 188 + .../integrations/configuration/index.md | 200 + .../integrations/git_namespaces/index.md | 181 + website/docs/services/integrations/index.md | 34 + .../integrations/search_repo/index.md | 163 + website/docs/services/log_drains/index.md | 33 + .../services/log_drains/integrations/index.md | 370 + .../services/log_drains/log_drains/index.md | 559 + .../docs/services/project_members/index.md | 33 + .../project_members/projects_members/index.md | 248 + .../docs/services/projects/domains/index.md | 484 + website/docs/services/projects/index.md | 34 + .../docs/services/projects/projects/index.md | 1150 ++ website/docs/services/secrets/index.md | 33 + .../docs/services/secrets/secrets/index.md | 460 + website/docs/services/teams/index.md | 35 + website/docs/services/teams/invites/index.md | 107 + website/docs/services/teams/members/index.md | 373 + website/docs/services/teams/request/index.md | 209 + website/docs/services/teams/teams/index.md | 382 + website/docs/services/user/events/index.md | 222 + website/docs/services/user/index.md | 33 + website/docs/services/user/user/index.md | 173 + website/docs/services/webhooks/index.md | 33 + .../docs/services/webhooks/webhooks/index.md | 303 + website/docusaurus.config.js | 4 +- ...l-digitalocean-provider-featured-image.png | Bin 23974 -> 0 bytes ...stackql-vercel-provider-featured-image.png | Bin 0 -> 17787 bytes website/yarn.lock | 9087 ++++++++++++ 92 files changed, 56364 insertions(+), 196 deletions(-) rename .github/workflows/{prod-web-deploy.yml.disabled => prod-web-deploy.yml} (100%) rename .github/workflows/{test-web-deploy.yml.disabled => test-web-deploy.yml} (100%) create mode 100644 package-lock.json delete mode 100644 provider-dev/openapi/.gitkeep create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/provider.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/aliases.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/artifacts.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/authentication.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/billing_settings.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/cache.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/certs.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/checks.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/deployments.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/dns.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/domains.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/edge_config.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/integrations.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/log_drains.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/project_members.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/projects.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/secrets.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/teams.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/user.yaml create mode 100644 provider-dev/openapi/src/vercel/v00.00.00000/services/webhooks.yaml delete mode 100644 website/docs/.gitkeep create mode 100644 website/docs/index.md create mode 100644 website/docs/services/aliases/aliases/index.md create mode 100644 website/docs/services/aliases/deployments/index.md create mode 100644 website/docs/services/aliases/index.md create mode 100644 website/docs/services/artifacts/artifacts/index.md create mode 100644 website/docs/services/artifacts/index.md create mode 100644 website/docs/services/authentication/index.md create mode 100644 website/docs/services/authentication/user_tokens/index.md create mode 100644 website/docs/services/billing_settings/data_cache/index.md create mode 100644 website/docs/services/billing_settings/index.md create mode 100644 website/docs/services/cache/data_cache_purge_all/index.md create mode 100644 website/docs/services/cache/index.md create mode 100644 website/docs/services/certs/certs/index.md create mode 100644 website/docs/services/certs/index.md create mode 100644 website/docs/services/checks/deployments/index.md create mode 100644 website/docs/services/checks/index.md create mode 100644 website/docs/services/deployments/builds/index.md create mode 100644 website/docs/services/deployments/deployments/index.md create mode 100644 website/docs/services/deployments/events/index.md create mode 100644 website/docs/services/deployments/files/index.md create mode 100644 website/docs/services/deployments/index.md create mode 100644 website/docs/services/dns/domains_records/index.md create mode 100644 website/docs/services/dns/index.md create mode 100644 website/docs/services/domains/config/index.md create mode 100644 website/docs/services/domains/domain_registry/index.md create mode 100644 website/docs/services/domains/domains/index.md create mode 100644 website/docs/services/domains/index.md create mode 100644 website/docs/services/domains/price/index.md create mode 100644 website/docs/services/domains/status/index.md create mode 100644 website/docs/services/edge_config/edge_config/index.md create mode 100644 website/docs/services/edge_config/index.md create mode 100644 website/docs/services/edge_config/item/index.md create mode 100644 website/docs/services/edge_config/items/index.md create mode 100644 website/docs/services/edge_config/token/index.md create mode 100644 website/docs/services/edge_config/tokens/index.md create mode 100644 website/docs/services/integrations/configuration/index.md create mode 100644 website/docs/services/integrations/git_namespaces/index.md create mode 100644 website/docs/services/integrations/index.md create mode 100644 website/docs/services/integrations/search_repo/index.md create mode 100644 website/docs/services/log_drains/index.md create mode 100644 website/docs/services/log_drains/integrations/index.md create mode 100644 website/docs/services/log_drains/log_drains/index.md create mode 100644 website/docs/services/project_members/index.md create mode 100644 website/docs/services/project_members/projects_members/index.md create mode 100644 website/docs/services/projects/domains/index.md create mode 100644 website/docs/services/projects/index.md create mode 100644 website/docs/services/projects/projects/index.md create mode 100644 website/docs/services/secrets/index.md create mode 100644 website/docs/services/secrets/secrets/index.md create mode 100644 website/docs/services/teams/index.md create mode 100644 website/docs/services/teams/invites/index.md create mode 100644 website/docs/services/teams/members/index.md create mode 100644 website/docs/services/teams/request/index.md create mode 100644 website/docs/services/teams/teams/index.md create mode 100644 website/docs/services/user/events/index.md create mode 100644 website/docs/services/user/index.md create mode 100644 website/docs/services/user/user/index.md create mode 100644 website/docs/services/webhooks/index.md create mode 100644 website/docs/services/webhooks/webhooks/index.md delete mode 100644 website/static/img/stackql-digitalocean-provider-featured-image.png create mode 100644 website/static/img/stackql-vercel-provider-featured-image.png create mode 100644 website/yarn.lock diff --git a/.github/workflows/prod-web-deploy.yml.disabled b/.github/workflows/prod-web-deploy.yml similarity index 100% rename from .github/workflows/prod-web-deploy.yml.disabled rename to .github/workflows/prod-web-deploy.yml diff --git a/.github/workflows/test-web-deploy.yml.disabled b/.github/workflows/test-web-deploy.yml similarity index 100% rename from .github/workflows/test-web-deploy.yml.disabled rename to .github/workflows/test-web-deploy.yml diff --git a/README.md b/README.md index 5545b37..52a1de4 100644 --- a/README.md +++ b/README.md @@ -1,164 +1,122 @@ -# StackQL Provider Template +# `vercel` provider for [`stackql`](https://github.com/stackql/stackql) -This repository serves as a template for developing StackQL providers. It provides a structured workflow and tools to generate, test, and document StackQL providers for various cloud services and APIs. - -## What is StackQL? - -[StackQL](https://github.com/stackql/stackql) is an open-source SQL interface for cloud APIs that allows you to query and manipulate cloud resources using SQL-like syntax. With StackQL, you can: - -- Query cloud resources across multiple providers using familiar SQL syntax -- Join data from different services and providers -- Execute CRUDL operations (`SELECT`, `INSERT`, `UPDATE`, `REPLACE`, `DELETE`) on cloud resources -- Execute lifecycle operations (like starting or stopping vms) using `EXEC` -- Build custom dashboards and reports -- Automate infrastructure operations using [`stackql-deploy`](https://stackql-deploy.io/) - -## What are StackQL Providers? - -StackQL providers are extensions that connect StackQL to specific cloud services or APIs. Each provider: - -1. Defines a schema that maps API endpoints to SQL-like resources and methods -2. Implements authentication mechanisms for the target API -3. Translates SQL operations into API calls -4. Transforms API responses into tabular data that can be queried with SQL - -This template repository helps you build StackQL providers by converting OpenAPI specifications into StackQL-compatible provider schemas using the `@stackql/provider-utils` package. - -## How StackQL Providers Work - -StackQL providers bridge the gap between SQL queries and REST APIs: - -1. **Resource Mapping**: API endpoints are mapped to SQL-like tables and views -2. **Method Mapping**: API operations are mapped to SQL verbs (`SELECT`, `INSERT`, `UPDATE`, `REPLACE`, `DELETE` and `EXEC`) -3. **Parameter Mapping**: SQL query conditions are translated to API parameters -4. **Response Transformation**: API responses are converted to tabular results +This repository is used to generate and document the `vercel` provider for StackQL, allowing you to query and manipulate Vercel resources using SQL-like syntax. The provider is built using the `@stackql/provider-utils` package, which provides tools for converting OpenAPI specifications into StackQL-compatible provider schemas. ## Prerequisites -To use this template for developing a StackQL provider, you'll need: - -1. An OpenAPI specification for the target API -2. Node.js and `npm` installed on your system -3. StackQL CLI installed (see [StackQL Installation](https://stackql.io/docs/installing-stackql)) -4. API credentials for testing your provider - -## Development Workflow +To use the Vercel provider with StackQL, you'll need: -### 1. Clone this Template - -Start by cloning this template repository and installing dependencies: - -```bash -git clone https://github.com/stackql/stackql-provider-template.git stackql-provider-myprovider -cd stackql-provider-myprovider -npm install -``` +1. A Vercel account with appropriate API credentials +2. A Vercel API token with sufficient permissions for the resources you want to access +3. StackQL CLI installed on your system (see [StackQL](https://github.com/stackql/stackql)) -### 2. Download the OpenAPI Specification +## 1. Download the Open API Specification -Obtain the OpenAPI specification for your target API. You can typically find this in the API documentation or developer portal. +First, download the Vercel API OpenAPI specification: ```bash -mkdir -p provider-dev/downloaded -curl -L https://api-url.example.com/openapi.yaml -o provider-dev/downloaded/provider-name.yaml +rm -rf provider-dev/downloaded/* +curl -L https://openapi.vercel.sh/openapi.yaml \ + -o provider-dev/downloaded/vercel-openapi.yaml + +# Convert YAML to JSON if needed +python3 provider-dev/scripts/yaml_to_json.py \ + --input provider-dev/downloaded/vercel-openapi.yaml \ + --output provider-dev/downloaded/openapi.json ``` -> recommended to automate this by creating a script in the `provider-dev/scripts` folder +## 2. Split into Service Specs -### 3. Split the OpenAPI Spec into Service Specs - -Break down the OpenAPI specification into smaller, service-specific files: +Next, split the monolithic OpenAPI specification into service-specific files: ```bash +rm -rf provider-dev/source/* npm run split -- \ - --provider-name your-provider-name \ - --api-doc provider-dev/downloaded/provider-name.yaml \ + --provider-name vercel \ + --api-doc provider-dev/downloaded/openapi.json \ --svc-discriminator tag \ --output-dir provider-dev/source \ --overwrite \ --svc-name-overrides "$(cat < this will vary by provider and may not be necessary in many cases +### Test Meta Routes -### 7. Test the Provider +Test all metadata routes (services, resources, methods) in the provider: + +```bash +npm run test-meta-routes -- vercel --verbose +``` -#### Start the StackQL Server +When you're done testing, stop the StackQL server: ```bash -PROVIDER_REGISTRY_ROOT_DIR="$(pwd)/provider-dev/openapi" -npm run start-server -- --provider your-provider-name --registry $PROVIDER_REGISTRY_ROOT_DIR +npm run stop-server ``` -#### Test Metadata Routes +Use this command to view the server status: ```bash -npm run test-meta-routes -- your-provider-name --verbose +npm run server-status ``` -#### Run Test Queries +### Run test queries + +Run some test queries against the provider using the `stackql shell`: ```bash PROVIDER_REGISTRY_ROOT_DIR="$(pwd)/provider-dev/openapi" @@ -166,127 +124,150 @@ REG_STR='{"url": "file://'${PROVIDER_REGISTRY_ROOT_DIR}'", "localDocRoot": "'${P ./stackql shell --registry="${REG_STR}" ``` -Example test query: -```sql -SELECT * FROM your-provider-name.service_name.resource_name LIMIT 10; -``` +Example queries to try: -When you're done testing, stop the StackQL server: -```bash -npm run stop-server +```sql +-- List all your Vercel projects +SELECT +id, +name, +created_at, +updated_at, +framework, +public_source, +root_directory, +build_command, +dev_command, +install_command, +output_directory +FROM vercel.projects.projects; + +-- Get all deployments +SELECT +id, +name, +url, +created_at, +state, +meta, +project_id, +target, +type, +creator_id, +team_id +FROM vercel.deployments.deployments; + +-- List domains +SELECT +id, +name, +service_type, +verified, +nsVerified, +created_at, +expires_at, +cdn_enabled, +project_id +FROM vercel.domains.domains; + +-- View team members +SELECT +uid, +role, +name, +email, +created_at +FROM vercel.teams.members +WHERE team_id = 'team_12345'; + +-- List environment variables for a project +SELECT +id, +key, +value, +target, +type, +created_at, +updated_at, +git_branch +FROM vercel.env.env_vars +WHERE project_id = 'prj_12345'; + +-- View Edge Config items +SELECT +key, +value, +edge_config_id +FROM vercel.edge_config.items +WHERE edge_config_id = 'ecfg_12345'; ``` -### 8. Publish the Provider +## 6. Publish the provider -To publish your provider: +To publish the provider push the `vercel` dir to `providers/src` in a feature branch of the [`stackql-provider-registry`](https://github.com/stackql/stackql-provider-registry). Follow the [registry release flow](https://github.com/stackql/stackql-provider-registry/blob/dev/docs/build-and-deployment.md). -1. Fork the [stackql-provider-registry](https://github.com/stackql/stackql-provider-registry) repository -2. Copy your provider directory to `providers/src` in a feature branch -3. Follow the [registry release flow](https://github.com/stackql/stackql-provider-registry/blob/dev/docs/build-and-deployment.md) +Launch the StackQL shell: -Test your published provider in the `dev` registry: ```bash export DEV_REG="{ \"url\": \"https://registry-dev.stackql.app/providers\" }" ./stackql --registry="${DEV_REG}" shell ``` -Pull and verify your provider: +Pull the latest dev `vercel` provider: + ```sql -registry pull your-provider-name; --- Run test queries +registry pull vercel; ``` -### 9. Generate Documentation +Run some test queries to verify the provider works as expected. -Provider doc microsites are built using Docusaurus and published using GitHub Pages. To genarate and publish comprehensive user docs for your provider, do the following: +## 7. Generate web docs -a. Upodate `headerContent1.txt` and `headerContent2.txt` accordingly in `provider-dev/docgen/provider-data/` +Provider doc microsites are built using Docusaurus and published using GitHub Pages. + +a. Update `headerContent1.txt` and `headerContent2.txt` accordingly in `provider-dev/docgen/provider-data/` b. Update the following in `website/docusaurus.config.js`: ```js // Provider configuration - change these for different providers -const providerName = "yourprovidername"; -const providerTitle = "Your Provider Title"; +const providerName = "vercel"; +const providerTitle = "Vercel Provider"; ``` c. Then generate docs using... ```bash npm run generate-docs -- \ - --provider-name your-provider-name \ - --provider-dir ./provider-dev/openapi/src/your-provider-name/v00.00.00000 \ + --provider-name vercel \ + --provider-dir ./provider-dev/openapi/src/vercel/v00.00.00000 \ --output-dir ./website \ --provider-data-dir ./provider-dev/docgen/provider-data ``` -d. Test the documentation locally: +## 8. Test web docs locally + ```bash cd website +# test build yarn build + +# run local dev server yarn start ``` -### 10. Publish Documentation - -Remove the `.disabled` extension from `.github/workflows/test-web-deploy.yml.disabled` and `.github/workflows/prod-web-deploy.yml.disabled` - -Set up GitHub Pages in your repository settings, and configure DNS if needed: - -| Source Domain | Record Type | Target | -|---------------|-------------|--------| -| your-provider-name-provider.stackql.io | CNAME | stackql.github.io. | - -## Authentication Configuration - -Different APIs require different authentication methods. Here are common authentication configurations: +## 9. Publish web docs to GitHub Pages -### API Key in Header -```json -{ - "auth": { - "credentialsenvvar": "PROVIDER_API_KEY", - "type": "header", - "headerName": "X-API-Key" - } -} -``` +Under __Pages__ in the repository, in the __Build and deployment__ section select __GitHub Actions__ as the __Source__. In Netlify DNS create the following records: -### Bearer Token -```json -{ - "auth": { - "credentialsenvvar": "PROVIDER_TOKEN", - "type": "bearer" - } -} -``` +| Source Domain | Record Type | Target | +|---------------|--------------|--------| +| vercel-provider.stackql.io | CNAME | stackql.github.io. | -### Basic Authentication -```json -{ - "auth": { - "credentialsenvvar": "PROVIDER_BASIC_AUTH", - "type": "basic" - } -} -``` +## License -### OAuth (Client Credentials Flow) -```json -{ - "auth": { - "credentialsenvvar": "PROVIDER_OAUTH_CONFIG", - "type": "oauth-client-credentials", - "tokenUrl": "https://auth.example.com/token" - } -} -``` +MIT ## Contributing -Contributions are welcome! Please feel free to submit a Pull Request. - -## License - -MIT \ No newline at end of file +Contributions are welcome! Please feel free to submit a Pull Request. \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..89f374e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,527 @@ +{ + "name": "stackql-provider-digitalocean", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "stackql-provider-digitalocean", + "version": "0.1.0", + "dependencies": { + "@stackql/pgwire-lite": "^1.0.1", + "@stackql/provider-utils": "^0.5.0" + }, + "engines": { + "node": ">=14.16.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", + "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "license": "MIT" + }, + "node_modules/@apidevtools/swagger-parser": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.1.tgz", + "integrity": "sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "11.7.2", + "@apidevtools/openapi-schemas": "^2.1.0", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "call-me-maybe": "^1.0.2" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT" + }, + "node_modules/@stackql/deno-openapi-dereferencer": { + "name": "@jsr/stackql__deno-openapi-dereferencer", + "version": "0.3.1", + "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.1.tgz", + "integrity": "sha512-7Ucdom3SYxvzp7VwzulQMe66E+1LeCZIprFQ70PwRPIUfL90bYNQDrLfe5L1WaB+X7StWdHmoFSFxoa9RDlN7w==", + "dependencies": { + "jsonpath-plus": "7.0.0" + } + }, + "node_modules/@stackql/pgwire-lite": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stackql/pgwire-lite/-/pgwire-lite-1.0.1.tgz", + "integrity": "sha512-jgA6ogzlXySZ1xiJzBxuvgRNu9V38Gs3qUZ4AjinlT7hj+8RH3UhYaDvyBd33QWiK3tVNkglYcnXPQ7q0+rmNA==", + "license": "MIT", + "dependencies": { + "winston": "^3.14.2" + } + }, + "node_modules/@stackql/provider-utils": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.5.0.tgz", + "integrity": "sha512-KwHVVCBC0XwbDI/dDb7FM1fEFqqnXQ0mPJFmiEYkASNs5mXQW0jbAazVBeOFO4JN0PN6AyX6D/vWCVOmpnz9jw==", + "license": "MIT", + "dependencies": { + "@apidevtools/swagger-parser": "^10.1.1", + "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.1", + "csv-parser": "^3.2.0", + "js-yaml": "^4.1.0", + "pluralize": "^8.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "license": "MIT" + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/csv-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.0.tgz", + "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==", + "license": "MIT", + "bin": { + "csv-parser": "bin/csv-parser" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/jsonpath-plus": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.0.0.tgz", + "integrity": "sha512-MH4UnrWrU1hJGVEyEyjvYgONkzNTO6Yol0nq18EMnUQ/ZC5cTuJheirXXIwu1b9mZ6t3XL0P79gPsu+zlTnDIQ==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/openapi-types": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "license": "MIT", + "peer": true + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/winston": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", + "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + } + } +} diff --git a/package.json b/package.json index b63f7a4..c56e58b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.4.6" + "@stackql/provider-utils": "^0.5.0" }, "keywords": [ "stackql", diff --git a/provider-dev/docgen/provider-data/headerContent1.txt b/provider-dev/docgen/provider-data/headerContent1.txt index 8e95862..191d07a 100644 --- a/provider-dev/docgen/provider-data/headerContent1.txt +++ b/provider-dev/docgen/provider-data/headerContent1.txt @@ -1,19 +1,19 @@ --- -title: REPLACEME +title: vercel hide_title: false hide_table_of_contents: false keywords: - - REPLACEME + - vercel - stackql - infrastructure-as-code - configuration-as-data - cloud inventory -description: Query, deploy and manage REPLACEME resources using SQL +description: Query, deploy, and manage Vercel resources using SQL custom_edit_url: null -image: /img/stackql-REPLACEME-provider-featured-image.png +image: /img/stackql-vercel-provider-featured-image.png id: 'provider-intro' --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -REPLACEME with description for the provider. \ No newline at end of file +Cloud platform for serverless deployment and hosting of web applications. \ No newline at end of file diff --git a/provider-dev/docgen/provider-data/headerContent2.txt b/provider-dev/docgen/provider-data/headerContent2.txt index 0eeb8c1..29cfdd4 100644 --- a/provider-dev/docgen/provider-data/headerContent2.txt +++ b/provider-dev/docgen/provider-data/headerContent2.txt @@ -4,10 +4,10 @@ See also: ## Installation -To pull the latest version of the `REPLACEME` provider, run the following command: +To pull the latest version of the `vercel` provider, run the following command: ```bash -REGISTRY PULL REPLACEME; +REGISTRY PULL vercel; ``` > To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). @@ -15,7 +15,7 @@ REGISTRY PULL REPLACEME; The following system environment variables are used for authentication by default: -- - REPLACEME API token (see - Vercel API Token (see Creating a Vercel API Token) These variables are sourced at runtime (from the local machine or as CI variables/secrets). @@ -27,7 +27,7 @@ To use different environment variables (instead of the defaults), use the `--aut ```bash -AUTH='{ "REPLACEME": { "type": "bearer", "credentialsenvvar": "REPLACEME" }}' +AUTH='{ "vercel": { "type": "bearer", "credentialsenvvar": "YOUR_VERCEL_API_TOKEN_VAR" }}' stackql shell --auth="${AUTH}" ``` @@ -35,7 +35,7 @@ or using PowerShell: ```powershell -$Auth = "{ 'REPLACEME': { 'type': 'bearer', 'credentialsenvvar': 'REPLACEME' }}" +$Auth = "{ 'vercel': { 'type': 'bearer', 'credentialsenvvar': 'YOUR_VERCEL_API_TOKEN_VAR' }}" stackql.exe shell --auth=$Auth ``` diff --git a/provider-dev/openapi/.gitkeep b/provider-dev/openapi/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/provider.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/provider.yaml new file mode 100644 index 0000000..0211e87 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/provider.yaml @@ -0,0 +1,179 @@ +id: vercel +name: vercel +version: v00.00.00000 +providerServices: + aliases: + id: 'aliases:v00.00.00000' + name: aliases + preferred: true + service: + $ref: vercel/v00.00.00000/services/aliases.yaml + title: Vercel API - Aliases + version: v00.00.00000 + description: Aliases + artifacts: + id: 'artifacts:v00.00.00000' + name: artifacts + preferred: true + service: + $ref: vercel/v00.00.00000/services/artifacts.yaml + title: Vercel API - Artifacts + version: v00.00.00000 + description: Artifacts + authentication: + id: 'authentication:v00.00.00000' + name: authentication + preferred: true + service: + $ref: vercel/v00.00.00000/services/authentication.yaml + title: Vercel API - Authentication + version: v00.00.00000 + description: Authentication + billing_settings: + id: 'billing_settings:v00.00.00000' + name: billing_settings + preferred: true + service: + $ref: vercel/v00.00.00000/services/billing_settings.yaml + title: Vercel API - Billing Settings + version: v00.00.00000 + description: Billing Settings + cache: + id: 'cache:v00.00.00000' + name: cache + preferred: true + service: + $ref: vercel/v00.00.00000/services/cache.yaml + title: Vercel API - Cache + version: v00.00.00000 + description: Cache + certs: + id: 'certs:v00.00.00000' + name: certs + preferred: true + service: + $ref: vercel/v00.00.00000/services/certs.yaml + title: Vercel API - Certs + version: v00.00.00000 + description: Certs + checks: + id: 'checks:v00.00.00000' + name: checks + preferred: true + service: + $ref: vercel/v00.00.00000/services/checks.yaml + title: Vercel API - Checks + version: v00.00.00000 + description: Checks + deployments: + id: 'deployments:v00.00.00000' + name: deployments + preferred: true + service: + $ref: vercel/v00.00.00000/services/deployments.yaml + title: Vercel API - Deployments + version: v00.00.00000 + description: Deployments + dns: + id: 'dns:v00.00.00000' + name: dns + preferred: true + service: + $ref: vercel/v00.00.00000/services/dns.yaml + title: Vercel API - Dns + version: v00.00.00000 + description: Dns + domains: + id: 'domains:v00.00.00000' + name: domains + preferred: true + service: + $ref: vercel/v00.00.00000/services/domains.yaml + title: Vercel API - Domains + version: v00.00.00000 + description: Domains + edge_config: + id: 'edge_config:v00.00.00000' + name: edge_config + preferred: true + service: + $ref: vercel/v00.00.00000/services/edge_config.yaml + title: Vercel API - Edge Config + version: v00.00.00000 + description: Edge-Config + integrations: + id: 'integrations:v00.00.00000' + name: integrations + preferred: true + service: + $ref: vercel/v00.00.00000/services/integrations.yaml + title: Vercel API - Integrations + version: v00.00.00000 + description: Integrations + log_drains: + id: 'log_drains:v00.00.00000' + name: log_drains + preferred: true + service: + $ref: vercel/v00.00.00000/services/log_drains.yaml + title: Vercel API - Log Drains + version: v00.00.00000 + description: LogDrains + projects: + id: 'projects:v00.00.00000' + name: projects + preferred: true + service: + $ref: vercel/v00.00.00000/services/projects.yaml + title: Vercel API - Projects + version: v00.00.00000 + description: Projects + project_members: + id: 'project_members:v00.00.00000' + name: project_members + preferred: true + service: + $ref: vercel/v00.00.00000/services/project_members.yaml + title: Vercel API - Project Members + version: v00.00.00000 + description: ProjectMembers + secrets: + id: 'secrets:v00.00.00000' + name: secrets + preferred: true + service: + $ref: vercel/v00.00.00000/services/secrets.yaml + title: Vercel API - Secrets + version: v00.00.00000 + description: Secrets + teams: + id: 'teams:v00.00.00000' + name: teams + preferred: true + service: + $ref: vercel/v00.00.00000/services/teams.yaml + title: Vercel API - Teams + version: v00.00.00000 + description: Teams + user: + id: 'user:v00.00.00000' + name: user + preferred: true + service: + $ref: vercel/v00.00.00000/services/user.yaml + title: Vercel API - User + version: v00.00.00000 + description: User + webhooks: + id: 'webhooks:v00.00.00000' + name: webhooks + preferred: true + service: + $ref: vercel/v00.00.00000/services/webhooks.yaml + title: Vercel API - Webhooks + version: v00.00.00000 + description: Webhooks +config: + auth: + type: bearer + credentialsenvvar: VERCEL_API_TOKEN diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/aliases.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/aliases.yaml new file mode 100644 index 0000000..8736f64 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/aliases.yaml @@ -0,0 +1,859 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - aliases + description: aliases +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + aliases: + id: vercel.aliases.aliases + name: aliases + title: Aliases + methods: + list_aliases: + operation: + $ref: '#/paths/~1v4~1aliases/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.aliases + _list_aliases: + operation: + $ref: '#/paths/~1v4~1aliases/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_alias: + operation: + $ref: '#/paths/~1v4~1aliases~1{idOrAlias}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_alias: + operation: + $ref: '#/paths/~1v2~1aliases~1{aliasId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/aliases/methods/get_alias' + - $ref: '#/components/x-stackQL-resources/aliases/methods/list_aliases' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/aliases/methods/delete_alias' + deployments: + id: vercel.aliases.deployments + name: deployments + title: Deployments + methods: + list_deployment_aliases: + operation: + $ref: '#/paths/~1v2~1deployments~1{id}~1aliases/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.aliases + _list_deployment_aliases: + operation: + $ref: '#/paths/~1v2~1deployments~1{id}~1aliases/get' + response: + mediaType: application/json + openAPIDocKey: '200' + assign_alias: + operation: + $ref: '#/paths/~1v2~1deployments~1{id}~1aliases/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployments/methods/list_deployment_aliases' + insert: [] + update: [] + delete: [] +paths: + /v4/aliases: + get: + description: 'Retrieves a list of aliases for the authenticated User or Team. When `domain` is provided, only aliases for that domain will be returned. When `projectId` is provided, it will only return the given project aliases.' + operationId: listAliases + security: + - bearerToken: [] + summary: List aliases + tags: + - aliases + responses: + '200': + description: The paginated list of aliases + content: + application/json: + schema: + properties: + aliases: + items: + properties: + alias: + type: string + description: 'The alias name, it could be a `.vercel.app` subdomain or a custom domain' + example: my-alias.vercel.app + created: + type: string + format: date-time + description: The date when the alias was created + example: '2017-04-26T23:00:34.232Z' + createdAt: + type: number + description: The date when the alias was created in milliseconds since the UNIX epoch + example: 1540095775941 + creator: + properties: + uid: + type: string + description: ID of the user who created the alias + example: 96SnxkFiMyVKsK3pnoHfx3Hz + email: + type: string + description: Email of the user who created the alias + example: john-doe@gmail.com + username: + type: string + description: Username of the user who created the alias + example: john-doe + required: + - uid + - email + - username + type: object + description: Information of the user who created the alias + deletedAt: + type: number + description: The date when the alias was deleted in milliseconds since the UNIX epoch + example: 1540095775941 + deployment: + properties: + id: + type: string + description: The deployment unique identifier + example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx + url: + type: string + description: The deployment unique URL + example: my-instant-deployment-3ij3cxz9qr.now.sh + meta: + type: string + description: The deployment metadata + example: {} + required: + - id + - url + type: object + description: 'A map with the deployment ID, URL and metadata' + deploymentId: + nullable: true + type: string + description: The deployment ID + example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx + projectId: + nullable: true + type: string + description: The unique identifier of the project + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + redirect: + nullable: true + type: string + description: Target destination domain for redirect when the alias is a redirect + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + description: Status code to be used on redirect + uid: + type: string + description: The unique identifier of the alias + updatedAt: + type: number + description: The date when the alias was updated in milliseconds since the UNIX epoch + example: 1540095775941 + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - shareable-link + required: + - createdAt + - createdBy + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + lastUpdatedAt: + type: number + lastUpdatedBy: + type: string + access: + type: string + enum: + - requested + - granted + scope: + type: string + enum: + - user + required: + - createdAt + - lastUpdatedAt + - lastUpdatedBy + - access + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - alias-protection-override + required: + - createdAt + - createdBy + - scope + type: object + description: The protection bypass for the alias + type: object + description: The protection bypass for the alias + required: + - alias + - created + - deploymentId + - projectId + - uid + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - aliases + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: domain + description: Get only aliases of the given domain name + in: query + schema: + description: Get only aliases of the given domain name + example: my-test-domain.com + items: + type: string + maxItems: 20 + oneOf: + - type: array + - type: string + - name: from + description: Get only aliases created after the provided timestamp + in: query + schema: + deprecated: true + description: Get only aliases created after the provided timestamp + example: 1540095775951 + type: number + - name: limit + description: Maximum number of aliases to list from a request + in: query + schema: + description: Maximum number of aliases to list from a request + example: 10 + type: number + - name: projectId + description: Filter aliases from the given `projectId` + in: query + schema: + description: Filter aliases from the given `projectId` + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + type: string + - name: since + description: Get aliases created after this JavaScript timestamp + in: query + schema: + description: Get aliases created after this JavaScript timestamp + example: 1540095775941 + type: number + - name: until + description: Get aliases created before this JavaScript timestamp + in: query + schema: + description: Get aliases created before this JavaScript timestamp + example: 1540095775951 + type: number + - name: rollbackDeploymentId + description: Get aliases that would be rolled back for the given deployment + in: query + schema: + description: Get aliases that would be rolled back for the given deployment + example: dpl_XXX + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v4/aliases/{idOrAlias}': + get: + description: Retrieves an Alias for the given host name or alias ID. + operationId: getAlias + security: + - bearerToken: [] + summary: Get an Alias + tags: + - aliases + responses: + '200': + description: The alias information + content: + application/json: + schema: + properties: + alias: + type: string + description: 'The alias name, it could be a `.vercel.app` subdomain or a custom domain' + example: my-alias.vercel.app + created: + type: string + format: date-time + description: The date when the alias was created + example: '2017-04-26T23:00:34.232Z' + createdAt: + type: number + description: The date when the alias was created in milliseconds since the UNIX epoch + example: 1540095775941 + creator: + properties: + uid: + type: string + description: ID of the user who created the alias + example: 96SnxkFiMyVKsK3pnoHfx3Hz + email: + type: string + description: Email of the user who created the alias + example: john-doe@gmail.com + username: + type: string + description: Username of the user who created the alias + example: john-doe + required: + - uid + - email + - username + type: object + description: Information of the user who created the alias + deletedAt: + type: number + description: The date when the alias was deleted in milliseconds since the UNIX epoch + example: 1540095775941 + deployment: + properties: + id: + type: string + description: The deployment unique identifier + example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx + url: + type: string + description: The deployment unique URL + example: my-instant-deployment-3ij3cxz9qr.now.sh + meta: + type: string + description: The deployment metadata + example: {} + required: + - id + - url + type: object + description: 'A map with the deployment ID, URL and metadata' + deploymentId: + nullable: true + type: string + description: The deployment ID + example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx + projectId: + nullable: true + type: string + description: The unique identifier of the project + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + redirect: + nullable: true + type: string + description: Target destination domain for redirect when the alias is a redirect + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + description: Status code to be used on redirect + uid: + type: string + description: The unique identifier of the alias + updatedAt: + type: number + description: The date when the alias was updated in milliseconds since the UNIX epoch + example: 1540095775941 + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - shareable-link + required: + - createdAt + - createdBy + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + lastUpdatedAt: + type: number + lastUpdatedBy: + type: string + access: + type: string + enum: + - requested + - granted + scope: + type: string + enum: + - user + required: + - createdAt + - lastUpdatedAt + - lastUpdatedBy + - access + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - alias-protection-override + required: + - createdAt + - createdBy + - scope + type: object + description: The protection bypass for the alias + type: object + description: The protection bypass for the alias + required: + - alias + - created + - deploymentId + - projectId + - uid + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The alias was not found + parameters: + - name: from + description: Get the alias only if it was created after the provided timestamp + in: query + required: false + schema: + deprecated: true + description: Get the alias only if it was created after the provided timestamp + example: 1540095775951 + type: number + - name: idOrAlias + description: The alias or alias ID to be retrieved + in: path + required: true + schema: + description: The alias or alias ID to be retrieved + example: example.vercel.app + type: string + - name: projectId + description: Get the alias only if it is assigned to the provided project ID + in: query + required: false + schema: + description: Get the alias only if it is assigned to the provided project ID + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + type: string + - name: since + description: Get the alias only if it was created after this JavaScript timestamp + in: query + required: false + schema: + description: Get the alias only if it was created after this JavaScript timestamp + example: 1540095775941 + type: number + - name: until + description: Get the alias only if it was created before this JavaScript timestamp + in: query + required: false + schema: + description: Get the alias only if it was created before this JavaScript timestamp + example: 1540095775951 + type: number + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v2/aliases/{aliasId}': + delete: + description: Delete an Alias with the specified ID. + operationId: deleteAlias + security: + - bearerToken: [] + summary: Delete an Alias + tags: + - aliases + responses: + '200': + description: The alias was successfully removed + content: + application/json: + schema: + properties: + status: + type: string + enum: + - SUCCESS + required: + - status + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The alias was not found + parameters: + - name: aliasId + description: The ID or alias that will be removed + in: path + required: true + schema: + example: 2WjyKQmM8ZnGcJsPWMrHRHrE + description: The ID or alias that will be removed + oneOf: + - type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v2/deployments/{id}/aliases': + get: + description: Retrieves all Aliases for the Deployment with the given ID. The authenticated user or team must own the deployment. + operationId: listDeploymentAliases + security: + - bearerToken: [] + summary: List Deployment Aliases + tags: + - aliases + responses: + '200': + description: The list of aliases assigned to the deployment + content: + application/json: + schema: + properties: + aliases: + items: + properties: + uid: + type: string + description: The unique identifier of the alias + example: 2WjyKQmM8ZnGcJsPWMrHRHrE + alias: + type: string + description: 'The alias name, it could be a `.vercel.app` subdomain or a custom domain' + example: my-alias.vercel.app + created: + type: string + format: date-time + description: The date when the alias was created + example: '2017-04-26T23:00:34.232Z' + redirect: + nullable: true + type: string + description: Target destination domain for redirect when the alias is a redirect + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - shareable-link + required: + - createdAt + - createdBy + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + lastUpdatedAt: + type: number + lastUpdatedBy: + type: string + access: + type: string + enum: + - requested + - granted + scope: + type: string + enum: + - user + required: + - createdAt + - lastUpdatedAt + - lastUpdatedBy + - access + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - alias-protection-override + required: + - createdAt + - createdBy + - scope + type: object + description: The protection bypass for the alias + type: object + description: The protection bypass for the alias + required: + - uid + - alias + - created + type: object + description: A list of the aliases assigned to the deployment + type: array + description: A list of the aliases assigned to the deployment + required: + - aliases + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The deployment was not found + parameters: + - name: id + description: The ID of the deployment the aliases should be listed for + in: path + required: true + schema: + example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa + description: The ID of the deployment the aliases should be listed for + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + post: + description: 'Creates a new alias for the deployment with the given deployment ID. The authenticated user or team must own this deployment. If the desired alias is already assigned to another deployment, then it will be removed from the old deployment and assigned to the new one.' + operationId: assignAlias + security: + - bearerToken: [] + summary: Assign an Alias + tags: + - aliases + responses: + '200': + description: The alias was successfully assigned to the deployment + content: + application/json: + schema: + properties: + uid: + type: string + description: The unique identifier of the alias + example: 2WjyKQmM8ZnGcJsPWMrHRHrE + alias: + type: string + description: The assigned alias name + example: my-alias.vercel.app + created: + type: string + format: date-time + description: The date when the alias was created + example: '2017-04-26T23:00:34.232Z' + oldDeploymentId: + nullable: true + type: string + description: 'The unique identifier of the previously aliased deployment, only received when the alias was used before' + example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa + required: + - uid + - alias + - created + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The cert for the provided alias is not ready + The deployment is not READY and can not be aliased + The supplied alias is invalid + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + If no .vercel.app alias exists then we fail (nothing to mirror) + '404': + description: |- + The domain used for the alias was not found + The deployment was not found + '409': + description: The provided alias is already assigned to the given deployment + parameters: + - name: id + description: The ID of the deployment the aliases should be listed for + in: path + required: true + schema: + description: The ID of the deployment the aliases should be listed for + example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa + oneOf: + - type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + alias: + description: The alias we want to assign to the deployment defined in the URL + example: my-alias.vercel.app + type: string + redirect: + description: The redirect property will take precedence over the deployment id from the URL and consists of a hostname (like test.com) to which the alias should redirect using status code 307 + example: null + type: string + nullable: true + type: object diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/artifacts.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/artifacts.yaml new file mode 100644 index 0000000..aff3907 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/artifacts.yaml @@ -0,0 +1,498 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - artifacts + description: artifacts +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + artifacts: + id: vercel.artifacts.artifacts + name: artifacts + title: Artifacts + methods: + record_events: + operation: + $ref: '#/paths/~1v8~1artifacts~1events/post' + response: + mediaType: application/json + openAPIDocKey: '200' + status: + operation: + $ref: '#/paths/~1v8~1artifacts~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + upload_artifact: + operation: + $ref: '#/paths/~1v8~1artifacts~1{hash}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + download_artifact: + operation: + $ref: '#/paths/~1v8~1artifacts~1{hash}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + artifact_exists: + operation: + $ref: '#/paths/~1v8~1artifacts~1{hash}/head' + response: + mediaType: application/json + openAPIDocKey: '200' + artifact_query: + operation: + $ref: '#/paths/~1v8~1artifacts/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] +paths: + /v8/artifacts/events: + post: + description: Records an artifacts cache usage event. The body of this request is an array of cache usage events. The supported event types are `HIT` and `MISS`. The source is either `LOCAL` the cache event was on the users filesystem cache or `REMOTE` if the cache event is for a remote cache. When the event is a `HIT` the request also accepts a number `duration` which is the time taken to generate the artifact in the cache. + operationId: recordEvents + security: + - bearerToken: [] + summary: Record an artifacts cache usage event + tags: + - artifacts + responses: + '200': + description: Success. Event recorded. + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the headers is invalid + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. + The Remote Caching usage limit has been reached for this account for this billing cycle. + Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + parameters: + - in: header + description: The continuous integration or delivery environment where this artifact is downloaded. + schema: + type: string + description: The continuous integration or delivery environment where this artifact is downloaded. + example: VERCEL + maxLength: 50 + name: x-artifact-client-ci + - in: header + description: 1 if the client is an interactive shell. Otherwise 0 + schema: + type: integer + description: 1 if the client is an interactive shell. Otherwise 0 + example: 0 + minimum: 0 + maximum: 1 + name: x-artifact-client-interactive + - description: The Team identifier or slug to perform the request on behalf of. + in: query + required: true + name: teamId + schema: + type: string + requestBody: + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: false + required: + - sessionId + - source + - hash + - event + properties: + sessionId: + type: string + description: A UUID (universally unique identifer) for the session that generated this event. + source: + type: string + enum: + - LOCAL + - REMOTE + description: One of `LOCAL` or `REMOTE`. `LOCAL` specifies that the cache event was from the user's filesystem cache. `REMOTE` specifies that the cache event is from a remote cache. + event: + type: string + enum: + - HIT + - MISS + description: One of `HIT` or `MISS`. `HIT` specifies that a cached artifact for `hash` was found in the cache. `MISS` specifies that a cached artifact with `hash` was not found. + hash: + type: string + example: 12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The artifact hash + duration: + type: number + description: The time taken to generate the artifact. This should be sent as a body parameter on `HIT` events. + example: 400 + /v8/artifacts/status: + get: + description: 'Check the status of Remote Caching for this principal. Returns a JSON-encoded status indicating if Remote Caching is enabled, disabled, or disabled due to usage limits.' + operationId: status + security: + - bearerToken: [] + summary: Get status of Remote Caching for this principal + tags: + - artifacts + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + status: + type: string + enum: + - disabled + - enabled + - over_limit + - paused + required: + - status + type: object + '400': + description: '' + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + required: true + name: teamId + schema: + type: string + '/v8/artifacts/{hash}': + put: + description: Uploads a cache artifact identified by the `hash` specified on the path. The cache artifact can then be downloaded with the provided `hash`. + operationId: uploadArtifact + security: + - bearerToken: [] + summary: Upload a cache artifact + tags: + - artifacts + responses: + '202': + description: File successfully uploaded + content: + application/json: + schema: + properties: + urls: + items: + type: string + type: array + description: Array of URLs where the artifact was updated + example: + - 'https://api.vercel.com/v2/now/artifact/12HKQaOmR5t5Uy6vdcQsNIiZgHGB' + required: + - urls + type: object + '400': + description: |- + One of the provided values in the request query is invalid. + One of the provided values in the headers is invalid + File size is not valid + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. + The Remote Caching usage limit has been reached for this account for this billing cycle. + Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + parameters: + - in: header + description: The artifact size in bytes + required: true + schema: + description: The artifact size in bytes + type: number + name: Content-Length + - in: header + description: The time taken to generate the uploaded artifact in milliseconds. + required: false + schema: + type: number + description: The time taken to generate the uploaded artifact in milliseconds. + example: 400 + name: x-artifact-duration + - in: header + description: The continuous integration or delivery environment where this artifact was generated. + required: false + schema: + type: string + description: The continuous integration or delivery environment where this artifact was generated. + example: VERCEL + maxLength: 50 + name: x-artifact-client-ci + - in: header + description: 1 if the client is an interactive shell. Otherwise 0 + required: false + schema: + type: integer + description: 1 if the client is an interactive shell. Otherwise 0 + example: 0 + minimum: 0 + maximum: 1 + name: x-artifact-client-interactive + - in: header + description: The base64 encoded tag for this artifact. The value is sent back to clients when the artifact is downloaded as the header `x-artifact-tag` + required: false + schema: + type: string + description: The base64 encoded tag for this artifact. The value is sent back to clients when the artifact is downloaded as the header `x-artifact-tag` + example: Tc0BmHvJYMIYJ62/zx87YqO0Flxk+5Ovip25NY825CQ= + maxLength: 600 + name: x-artifact-tag + - name: hash + description: The artifact hash + in: path + required: true + schema: + example: 12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The artifact hash + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/octet-stream: + schema: + type: string + format: binary + get: + description: Downloads a cache artifact indentified by its `hash` specified on the request path. The artifact is downloaded as an octet-stream. The client should verify the content-length header and response body. + operationId: downloadArtifact + security: + - bearerToken: [] + summary: Download a cache artifact + tags: + - artifacts + responses: + '200': + description: The artifact was found and is downloaded as a stream. Content-Length should be verified. + content: + application/json: + schema: + type: string + format: binary + description: An octet stream response that will be piped to the response stream. + '400': + description: |- + One of the provided values in the request query is invalid. + One of the provided values in the headers is invalid + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. + The Remote Caching usage limit has been reached for this account for this billing cycle. + Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + '404': + description: The artifact was not found + parameters: + - in: header + description: The continuous integration or delivery environment where this artifact is downloaded. + schema: + type: string + description: The continuous integration or delivery environment where this artifact is downloaded. + example: VERCEL + maxLength: 50 + name: x-artifact-client-ci + - in: header + description: 1 if the client is an interactive shell. Otherwise 0 + schema: + type: integer + description: 1 if the client is an interactive shell. Otherwise 0 + example: 0 + minimum: 0 + maximum: 1 + name: x-artifact-client-interactive + - name: hash + description: The artifact hash + in: path + required: true + schema: + example: 12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The artifact hash + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + head: + description: Check that a cache artifact with the given `hash` exists. This request returns response headers only and is equivalent to a `GET` request to this endpoint where the response contains no body. + operationId: artifactExists + security: + - bearerToken: [] + summary: Check if a cache artifact exists + tags: + - artifacts + responses: + '200': + description: The artifact was found and headers are returned + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. + The Remote Caching usage limit has been reached for this account for this billing cycle. + Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + '404': + description: The artifact was not found + parameters: + - name: hash + description: The artifact hash + in: path + required: true + schema: + example: 12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The artifact hash + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v8/artifacts: + post: + description: Query information about an array of artifacts. + operationId: artifactQuery + security: + - bearerToken: [] + summary: Query information about an artifact + tags: + - artifacts + responses: + '200': + description: '' + content: + application/json: + schema: + additionalProperties: + nullable: true + oneOf: + - properties: + size: + type: number + taskDurationMs: + type: number + tag: + type: string + required: + - size + - taskDurationMs + type: object + - properties: + error: + properties: + message: + type: string + required: + - message + type: object + required: + - error + type: object + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. + The Remote Caching usage limit has been reached for this account for this billing cycle. + Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - hashes + properties: + hashes: + items: + type: string + description: artifact hashes + type: array diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/authentication.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/authentication.yaml new file mode 100644 index 0000000..5b3871d --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/authentication.yaml @@ -0,0 +1,532 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - authentication + description: authentication +components: + schemas: + AuthToken: + properties: + id: + type: string + description: The unique identifier of the token. + example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 + name: + type: string + description: The human-readable name of the token. + type: + type: string + description: The type of the token. + example: oauth2-token + origin: + type: string + description: The origin of how the token was created. + example: github + scopes: + items: + oneOf: + - properties: + type: + type: string + enum: + - user + origin: + type: string + enum: + - saml + - github + - gitlab + - bitbucket + - email + - manual + createdAt: + type: number + expiresAt: + type: number + required: + - type + - origin + - createdAt + type: object + description: The access scopes granted to the token. + - properties: + type: + type: string + enum: + - team + teamId: + type: string + origin: + type: string + enum: + - saml + - github + - gitlab + - bitbucket + - email + - manual + createdAt: + type: number + expiresAt: + type: number + required: + - type + - teamId + - origin + - createdAt + type: object + description: The access scopes granted to the token. + type: array + description: The access scopes granted to the token. + expiresAt: + type: number + description: Timestamp (in milliseconds) of when the token expires. + example: 1632816536002 + activeAt: + type: number + description: Timestamp (in milliseconds) of when the token was most recently used. + example: 1632816536002 + createdAt: + type: number + description: Timestamp (in milliseconds) of when the token was created. + example: 1632816536002 + required: + - id + - name + - type + - activeAt + - createdAt + type: object + description: Authentication token metadata. + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + user_tokens: + id: vercel.authentication.user_tokens + name: user_tokens + title: User Tokens + methods: + list_auth_tokens: + operation: + $ref: '#/paths/~1v5~1user~1tokens/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.tokens + _list_auth_tokens: + operation: + $ref: '#/paths/~1v5~1user~1tokens/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_auth_token: + operation: + $ref: '#/paths/~1v3~1user~1tokens/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get_auth_token: + operation: + $ref: '#/paths/~1v5~1user~1tokens~1{tokenId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_auth_token: + operation: + $ref: '#/paths/~1v3~1user~1tokens~1{tokenId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + verify_token: + operation: + $ref: '#/paths/~1registration~1verify/get' + response: + mediaType: application/json + openAPIDocKey: '200' + email_login: + operation: + $ref: '#/paths/~1registration/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/user_tokens/methods/get_auth_token' + - $ref: '#/components/x-stackQL-resources/user_tokens/methods/list_auth_tokens' + insert: + - $ref: '#/components/x-stackQL-resources/user_tokens/methods/create_auth_token' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/user_tokens/methods/delete_auth_token' +paths: + /v5/user/tokens: + get: + description: Retrieve a list of the current User's authentication tokens. + operationId: listAuthTokens + security: + - bearerToken: [] + summary: List Auth Tokens + tags: + - authentication + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + tokens: + items: + $ref: '#/components/schemas/AuthToken' + type: array + testingToken: + $ref: '#/components/schemas/AuthToken' + pagination: + $ref: '#/components/schemas/Pagination' + required: + - tokens + - pagination + type: object + '400': + description: '' + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: [] + /v3/user/tokens: + post: + description: 'Creates and returns a new authentication token for the currently authenticated User. The `bearerToken` property is only provided once, in the response body, so be sure to save it on the client for use with API requests.' + operationId: createAuthToken + security: + - bearerToken: [] + summary: Create an Auth Token + tags: + - authentication + responses: + '200': + description: Successful response. + content: + application/json: + schema: + properties: + token: + $ref: '#/components/schemas/AuthToken' + bearerToken: + type: string + description: 'The authentication token''s actual value. This token is only provided in this response, and can never be retrieved again in the future. Be sure to save it somewhere safe!' + example: uRKJSTt0L4RaSkiMj41QTkxM + required: + - token + - bearerToken + type: object + description: Successful response. + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + additionalProperties: false + required: + - name + properties: + name: + type: string + expiresAt: + type: number + - type: object + additionalProperties: false + required: + - type + - name + properties: + type: + enum: + - oauth2-token + name: + type: string + clientId: + type: string + installationId: + type: string + expiresAt: + type: number + '/v5/user/tokens/{tokenId}': + get: + description: Retrieve metadata about an authentication token belonging to the currently authenticated User. + operationId: getAuthToken + security: + - bearerToken: [] + summary: Get Auth Token Metadata + tags: + - authentication + responses: + '200': + description: Successful response. + content: + application/json: + schema: + properties: + token: + $ref: '#/components/schemas/AuthToken' + required: + - token + type: object + description: Successful response. + '400': + description: One of the provided values in the request query is invalid. + '403': + description: You do not have permission to access this resource. + '404': + description: Token not found with the requested `tokenId`. + parameters: + - name: tokenId + description: 'The identifier of the token to retrieve. The special value \"current\" may be supplied, which returns the metadata for the token that the current HTTP request is authenticated with.' + in: path + required: true + schema: + type: string + description: 'The identifier of the token to retrieve. The special value \"current\" may be supplied, which returns the metadata for the token that the current HTTP request is authenticated with.' + example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 + '/v3/user/tokens/{tokenId}': + delete: + description: 'Invalidate an authentication token, such that it will no longer be valid for future HTTP requests.' + operationId: deleteAuthToken + security: + - bearerToken: [] + summary: Delete an authentication token + tags: + - authentication + responses: + '200': + description: Authentication token successfully deleted. + content: + application/json: + schema: + properties: + tokenId: + type: string + description: The unique identifier of the token that was deleted. + example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 + required: + - tokenId + type: object + description: Authentication token successfully deleted. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: Token not found with the requested `tokenId`. + parameters: + - name: tokenId + description: 'The identifier of the token to invalidate. The special value \"current\" may be supplied, which invalidates the token that the HTTP request was authenticated with.' + in: path + required: true + schema: + type: string + description: 'The identifier of the token to invalidate. The special value \"current\" may be supplied, which invalidates the token that the HTTP request was authenticated with.' + example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 + /registration/verify: + get: + description: Verify the user accepted the login request and get a authentication token. The user email address and the token received after requesting the login must be added to the URL as a query string with the names `email` and `token`. + operationId: verifyToken + security: [] + summary: Verify a login request to get an authentication token + tags: + - authentication + responses: + '200': + description: The verification was successful. + content: + application/json: + schema: + properties: + token: + type: string + description: The user authentication token that can be used to perform API requests. + example: 1ioXyz9Ue4xdCYGROet1dlKd + email: + type: string + description: Email address of the authenticated user. + example: amy@example.com + teamId: + type: string + description: 'When completing SAML Single Sign-On authentication, this will be the ID of the Team that was authenticated for.' + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + required: + - token + - email + type: object + '400': + description: |- + One of the provided values in the request query is invalid. + The slug is already in use + The provided token exists but is not yet confirmed + '403': + description: |- + You do not have permission to access this resource. + The verification sso token is invalid or not found + The verification token is invalid or not found + '404': + description: '' + parameters: + - name: email + description: Email to verify the login. + in: query + required: false + schema: + type: string + description: Email to verify the login. + - name: token + description: The token returned when the login was requested. + in: query + required: true + schema: + type: string + description: The token returned when the login was requested. + - name: tokenName + description: The desired name for the token. It will be displayed on the user account details. + in: query + required: false + schema: + type: string + example: Your Client App Name + description: The desired name for the token. It will be displayed on the user account details. + - name: ssoUserId + description: 'The SAML Profile ID, when connecting a SAML Profile to a Team member for the first time.' + in: query + required: false + schema: + type: string + description: 'The SAML Profile ID, when connecting a SAML Profile to a Team member for the first time.' + - name: teamName + description: The name of this user's team. + in: query + required: false + schema: + type: string + description: The name of this user's team. + - name: teamSlug + description: The slug for this user's team. + in: query + required: false + schema: + type: string + description: The slug for this user's team. + - name: teamPlan + description: The plan for this user's team (pro or hobby). + in: query + required: false + schema: + type: string + enum: + - pro + - hobby + description: The plan for this user's team (pro or hobby). + /registration: + post: + description: Request a new login for a user to get a token. This will respond with a verification token and send an email to confirm the request. Once confirmed you can use the verification token to get an authentication token. + operationId: emailLogin + security: [] + summary: Login with email + tags: + - authentication + responses: + '200': + description: The request was successful and an email was sent + content: + application/json: + schema: + properties: + token: + type: string + description: The token used to verify the user accepted the login request + example: T1dmvPu36nmyYisXAs7IRzcR + securityCode: + type: string + description: The code the user is going to receive on the email. **Must** be displayed to the user so they can verify the request is the correct. + example: Practical Saola + required: + - token + - securityCode + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + The provided email is invalid because the owner is blocked + parameters: [] + requestBody: + content: + application/json: + schema: + properties: + email: + example: user@mail.com + description: The user email. + type: string + tokenName: + example: Your Client App Name + description: The desired name for the token. It will be displayed on the user account details. + type: string + required: + - email + type: object diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/billing_settings.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/billing_settings.yaml new file mode 100644 index 0000000..1a3d05b --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/billing_settings.yaml @@ -0,0 +1,79 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - billing_settings + description: billing_settings +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + data_cache: + id: vercel.billing_settings.data_cache + name: data_cache + title: Data Cache + methods: + enable_excess_billing: + operation: + $ref: '#/paths/~1data-cache~1billing-settings/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] +paths: + /data-cache/billing-settings: + patch: + description: '' + operationId: enableExcessBilling + security: [] + tags: + - billing_settings + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + excessBillingEnabled: + type: boolean + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + excessBillingEnabled: + type: boolean diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/cache.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/cache.yaml new file mode 100644 index 0000000..ca15533 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/cache.yaml @@ -0,0 +1,69 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - cache + description: cache +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + data_cache_purge_all: + id: vercel.cache.data_cache_purge_all + name: data_cache_purge_all + title: Data Cache Purge All + methods: + purge_all: + operation: + $ref: '#/paths/~1data-cache~1purge-all/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] +paths: + /data-cache/purge-all: + delete: + description: '' + operationId: purgeAll + security: [] + tags: + - cache + responses: + '200': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: projectIdOrName + in: query + required: true + schema: + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/certs.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/certs.yaml new file mode 100644 index 0000000..df0c9b6 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/certs.yaml @@ -0,0 +1,300 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - certs + description: certs +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + certs: + id: vercel.certs.certs + name: certs + title: Certs + methods: + get_cert_by_id: + operation: + $ref: '#/paths/~1v7~1certs~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + remove_cert: + operation: + $ref: '#/paths/~1v7~1certs~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + issue_cert: + operation: + $ref: '#/paths/~1v7~1certs/post' + response: + mediaType: application/json + openAPIDocKey: '200' + upload_cert: + operation: + $ref: '#/paths/~1v7~1certs/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/certs/methods/get_cert_by_id' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/certs/methods/remove_cert' +paths: + '/v7/certs/{id}': + get: + description: Get cert by id + operationId: getCertById + security: + - bearerToken: [] + summary: Get cert by id + tags: + - certs + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + createdAt: + type: number + expiresAt: + type: number + autoRenew: + type: boolean + cns: + items: + type: string + type: array + required: + - id + - createdAt + - expiresAt + - autoRenew + - cns + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: id + description: The cert id + in: path + required: true + schema: + description: The cert id + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + delete: + description: Remove cert + operationId: removeCert + security: + - bearerToken: [] + summary: Remove cert + tags: + - certs + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: id + description: The cert id to remove + in: path + required: true + schema: + description: The cert id to remove + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v7/certs: + post: + description: Issue a new cert + operationId: issueCert + security: + - bearerToken: [] + summary: Issue a new cert + tags: + - certs + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + createdAt: + type: number + expiresAt: + type: number + autoRenew: + type: boolean + cns: + items: + type: string + type: array + required: + - id + - createdAt + - expiresAt + - autoRenew + - cns + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '449': + description: '' + '500': + description: '' + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + cns: + description: The common names the cert should be issued for + type: array + items: + type: string + put: + description: Upload a cert + operationId: uploadCert + security: + - bearerToken: [] + summary: Upload a cert + tags: + - certs + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + createdAt: + type: number + expiresAt: + type: number + autoRenew: + type: boolean + cns: + items: + type: string + type: array + required: + - id + - createdAt + - expiresAt + - autoRenew + - cns + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '402': + description: This feature is only available for Enterprise customers. + '403': + description: You do not have permission to access this resource. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - ca + - key + - cert + additionalProperties: false + properties: + ca: + type: string + description: The certificate authority + key: + type: string + description: The certificate key + cert: + type: string + description: The certificate + skipValidation: + type: boolean + description: Skip validation of the certificate diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/checks.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/checks.yaml new file mode 100644 index 0000000..1e99020 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/checks.yaml @@ -0,0 +1,1044 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - checks + description: checks +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + deployments: + id: vercel.checks.deployments + name: deployments + title: Deployments + methods: + create_check: + operation: + $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get_all_checks: + operation: + $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.checks + _get_all_checks: + operation: + $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_check: + operation: + $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks~1{checkId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_check: + operation: + $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks~1{checkId}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + rerequest_check: + operation: + $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks~1{checkId}~1rerequest/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployments/methods/get_check' + - $ref: '#/components/x-stackQL-resources/deployments/methods/get_all_checks' + insert: + - $ref: '#/components/x-stackQL-resources/deployments/methods/create_check' + update: [] + delete: [] +paths: + '/v1/deployments/{deploymentId}/checks': + post: + description: Creates a new check. This endpoint must be called with an OAuth2 or it will produce a 400 error. + operationId: createCheck + security: + - bearerToken: [] + summary: Creates a new Check + tags: + - checks + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + path: + type: string + status: + type: string + enum: + - registered + - running + - completed + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - succeeded + - skipped + - stale + blocking: + type: boolean + output: + properties: + metrics: + properties: + FCP: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + LCP: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + CLS: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + TBT: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + virtualExperienceScore: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + required: + - FCP + - LCP + - CLS + - TBT + type: object + type: object + detailsUrl: + type: string + integrationId: + type: string + deploymentId: + type: string + externalId: + type: string + createdAt: + type: number + updatedAt: + type: number + startedAt: + type: number + completedAt: + type: number + rerequestable: + type: boolean + required: + - id + - name + - status + - blocking + - integrationId + - deploymentId + - createdAt + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + Cannot create check for finished deployment + The provided token is not from an OAuth2 Client + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The deployment was not found + parameters: + - name: deploymentId + description: The deployment to create the check for. + in: path + required: true + schema: + description: The deployment to create the check for. + example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + name: + description: The name of the check being created + maxLength: 100 + example: Performance Check + type: string + path: + description: Path of the page that is being checked + type: string + maxLength: 255 + example: / + blocking: + description: Whether the check should block a deployment from succeeding + type: boolean + example: true + detailsUrl: + description: URL to display for further details + type: string + example: 'http://example.com' + externalId: + description: An identifier that can be used as an external reference + type: string + example: 1234abc + rerequestable: + description: Whether a user should be able to request for the check to be rerun if it fails + type: boolean + example: true + required: + - name + - blocking + type: object + get: + description: List all of the checks created for a deployment. + operationId: getAllChecks + security: + - bearerToken: [] + summary: Retrieve a list of all checks + tags: + - checks + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + checks: + items: + properties: + completedAt: + type: number + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - succeeded + - skipped + - stale + createdAt: + type: number + detailsUrl: + type: string + id: + type: string + integrationId: + type: string + name: + type: string + output: + properties: + metrics: + properties: + FCP: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + LCP: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + CLS: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + TBT: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + virtualExperienceScore: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + required: + - FCP + - LCP + - CLS + - TBT + type: object + type: object + path: + type: string + rerequestable: + type: boolean + startedAt: + type: number + status: + type: string + enum: + - registered + - running + - completed + updatedAt: + type: number + required: + - createdAt + - id + - integrationId + - name + - rerequestable + - status + - updatedAt + type: object + type: array + required: + - checks + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The deployment was not found + parameters: + - name: deploymentId + description: The deployment to get all checks for + in: path + required: true + schema: + description: The deployment to get all checks for + example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/deployments/{deploymentId}/checks/{checkId}': + get: + description: Return a detailed response for a single check. + operationId: getCheck + security: + - bearerToken: [] + summary: Get a single check + tags: + - checks + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + path: + type: string + status: + type: string + enum: + - registered + - running + - completed + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - succeeded + - skipped + - stale + blocking: + type: boolean + output: + properties: + metrics: + properties: + FCP: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + LCP: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + CLS: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + TBT: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + virtualExperienceScore: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + required: + - FCP + - LCP + - CLS + - TBT + type: object + type: object + detailsUrl: + type: string + integrationId: + type: string + deploymentId: + type: string + externalId: + type: string + createdAt: + type: number + updatedAt: + type: number + startedAt: + type: number + completedAt: + type: number + rerequestable: + type: boolean + required: + - id + - name + - status + - blocking + - integrationId + - deploymentId + - createdAt + - updatedAt + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: |- + You do not have permission to access this resource. + The provided token is not from an OAuth2 Client that created the Check + '404': + description: |- + Check was not found + The deployment was not found + parameters: + - name: deploymentId + description: The deployment to get the check for. + in: path + required: true + schema: + description: The deployment to get the check for. + example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 + type: string + - name: checkId + description: The check to fetch + in: path + required: true + schema: + description: The check to fetch + example: check_2qn7PZrx89yxY34vEZPD31Y9XVj6 + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + patch: + description: Update an existing check. This endpoint must be called with an OAuth2 or it will produce a 400 error. + operationId: updateCheck + security: + - bearerToken: [] + summary: Update a check + tags: + - checks + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + path: + type: string + status: + type: string + enum: + - registered + - running + - completed + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - succeeded + - skipped + - stale + blocking: + type: boolean + output: + properties: + metrics: + properties: + FCP: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + LCP: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + CLS: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + TBT: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + virtualExperienceScore: + properties: + value: + nullable: true + type: number + previousValue: + type: number + source: + type: string + enum: + - web-vitals + required: + - value + - source + type: object + required: + - FCP + - LCP + - CLS + - TBT + type: object + type: object + detailsUrl: + type: string + integrationId: + type: string + deploymentId: + type: string + externalId: + type: string + createdAt: + type: number + updatedAt: + type: number + startedAt: + type: number + completedAt: + type: number + rerequestable: + type: boolean + required: + - id + - name + - status + - blocking + - integrationId + - deploymentId + - createdAt + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The provided token is not from an OAuth2 Client + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: |- + Check was not found + The deployment was not found + '413': + description: The output provided is too large + parameters: + - name: deploymentId + description: The deployment to update the check for. + in: path + required: true + schema: + description: The deployment to update the check for. + example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 + type: string + - name: checkId + description: The check being updated + in: path + required: true + schema: + description: The check being updated + example: check_2qn7PZrx89yxY34vEZPD31Y9XVj6 + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + name: + description: The name of the check being created + maxLength: 100 + example: Performance Check + type: string + path: + description: Path of the page that is being checked + type: string + maxLength: 255 + example: / + status: + description: The current status of the check + enum: + - running + - completed + conclusion: + description: The result of the check being run + enum: + - canceled + - failed + - neutral + - succeeded + - skipped + detailsUrl: + description: A URL a user may visit to see more information about the check + type: string + example: 'https://example.com/check/run/1234abc' + output: + description: The results of the check Run + type: object + properties: + metrics: + type: object + description: Metrics about the page + required: + - FCP + - LCP + - CLS + - TBT + additionalProperties: false + properties: + FCP: + type: object + required: + - value + - source + properties: + value: + type: number + example: 1200 + description: First Contentful Paint value + nullable: true + previousValue: + type: number + example: 900 + description: Previous First Contentful Paint value to display a delta + source: + type: string + enum: + - web-vitals + LCP: + type: object + required: + - value + - source + properties: + value: + type: number + example: 1200 + description: Largest Contentful Paint value + nullable: true + previousValue: + type: number + example: 1000 + description: Previous Largest Contentful Paint value to display a delta + source: + type: string + enum: + - web-vitals + CLS: + type: object + required: + - value + - source + properties: + value: + type: number + example: 4 + description: Cumulative Layout Shift value + nullable: true + previousValue: + type: number + example: 2 + description: Previous Cumulative Layout Shift value to display a delta + source: + type: string + enum: + - web-vitals + TBT: + type: object + required: + - value + - source + properties: + value: + type: number + example: 3000 + description: Total Blocking Time value + nullable: true + previousValue: + type: number + example: 3500 + description: Previous Total Blocking Time value to display a delta + source: + enum: + - web-vitals + virtualExperienceScore: + type: object + required: + - value + - source + properties: + value: + type: integer + maximum: 100 + minimum: 0 + example: 30 + description: 'The calculated Virtual Experience Score value, between 0 and 100' + nullable: true + previousValue: + type: integer + maximum: 100 + minimum: 0 + example: 35 + description: 'A previous Virtual Experience Score value to display a delta, between 0 and 100' + source: + enum: + - web-vitals + externalId: + description: An identifier that can be used as an external reference + type: string + example: 1234abc + type: object + '/v1/deployments/{deploymentId}/checks/{checkId}/rerequest': + post: + description: Rerequest a selected check that has failed. + operationId: rerequestCheck + security: + - bearerToken: [] + summary: Rerequest a check + tags: + - checks + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: |- + The deployment was not found + Check was not found + parameters: + - name: deploymentId + description: The deployment to rerun the check for. + in: path + required: true + schema: + description: The deployment to rerun the check for. + example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 + type: string + - name: checkId + description: The check to rerun + in: path + required: true + schema: + description: The check to rerun + example: check_2qn7PZrx89yxY34vEZPD31Y9XVj6 + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/deployments.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/deployments.yaml new file mode 100644 index 0000000..dfa7d42 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/deployments.yaml @@ -0,0 +1,6734 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - deployments + description: deployments +components: + schemas: + FileTree: + properties: + name: + type: string + description: The name of the file tree entry + example: my-file.json + type: + type: string + enum: + - directory + - file + - symlink + - lambda + - middleware + - invalid + description: String indicating the type of file tree entry. + example: file + uid: + type: string + description: The unique identifier of the file (only valid for the `file` type) + example: 2d4aad419917f15b1146e9e03ddc9bb31747e4d0 + children: + items: + $ref: '#/components/schemas/FileTree' + type: array + description: The list of children files of the directory (only valid for the `directory` type) + contentType: + type: string + description: The content-type of the file (only valid for the `file` type) + example: application/json + mode: + type: number + description: The file "mode" indicating file type and permissions. + symlink: + type: string + description: Not currently used. See `file-list-to-tree.ts`. + required: + - name + - type + - mode + type: object + description: A deployment file tree entry + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + builds: + id: vercel.deployments.builds + name: builds + title: Builds + methods: + get_builds_for_deployment: + operation: + $ref: '#/paths/~1deployments~1{deploymentId}~1builds/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.builds + _get_builds_for_deployment: + operation: + $ref: '#/paths/~1deployments~1{deploymentId}~1builds/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/builds/methods/get_builds_for_deployment' + insert: [] + update: [] + delete: [] + events: + id: vercel.deployments.events + name: events + title: Events + methods: + get_deployment_events: + operation: + $ref: '#/paths/~1v2~1deployments~1{idOrUrl}~1events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/events/methods/get_deployment_events' + insert: [] + update: [] + delete: [] + deployments: + id: vercel.deployments.deployments + name: deployments + title: Deployments + methods: + get_deployment: + operation: + $ref: '#/paths/~1v13~1deployments~1{idOrUrl}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_deployment: + operation: + $ref: '#/paths/~1v13~1deployments/post' + response: + mediaType: application/json + openAPIDocKey: '200' + cancel_deployment: + operation: + $ref: '#/paths/~1v12~1deployments~1{id}~1cancel/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + get_deployments: + operation: + $ref: '#/paths/~1v6~1deployments/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deployments + _get_deployments: + operation: + $ref: '#/paths/~1v6~1deployments/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_deployment: + operation: + $ref: '#/paths/~1v13~1deployments~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployments/methods/get_deployment' + - $ref: '#/components/x-stackQL-resources/deployments/methods/get_deployments' + insert: + - $ref: '#/components/x-stackQL-resources/deployments/methods/create_deployment' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/deployments/methods/delete_deployment' + files: + id: vercel.deployments.files + name: files + title: Files + methods: + upload_file: + operation: + $ref: '#/paths/~1v2~1files/post' + response: + mediaType: application/json + openAPIDocKey: '200' + list_deployment_files: + operation: + $ref: '#/paths/~1v6~1deployments~1{id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_deployment_file_contents: + operation: + $ref: '#/paths/~1v6~1deployments~1{id}~1files~1{fileId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/files/methods/list_deployment_files' + insert: [] + update: [] + delete: [] +paths: + '/deployments/{deploymentId}/builds': + get: + description: Retrieves the list of builds given their deployment's unique identifier. No longer listed as public API as of May 2023. + operationId: getBuildsForDeployment + security: [] + tags: + - deployments + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + builds: + items: + properties: + id: + type: string + description: The unique identifier of the Build + deploymentId: + type: string + description: The unique identifier of the deployment + entrypoint: + type: string + description: The entrypoint of the deployment + readyState: + type: string + enum: + - INITIALIZING + - BUILDING + - UPLOADING + - DEPLOYING + - READY + - ARCHIVED + - ERROR + - QUEUED + - CANCELED + description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' + readyStateAt: + type: number + description: The time at which the Build state was last modified + scheduledAt: + nullable: true + type: number + description: The time at which the Build was scheduled to be built + createdAt: + type: number + description: The time at which the Build was created + deployedAt: + type: number + description: The time at which the Build was deployed + createdIn: + type: string + description: The region where the Build was first created + use: + type: string + description: The Runtime the Build used to generate the output + config: + properties: + distDir: + type: string + forceBuildIn: + type: string + reuseWorkPathFrom: + type: string + zeroConfig: + type: boolean + type: object + description: An object that contains the Build's configuration + output: + items: + properties: + type: + type: string + enum: + - lambda + - file + - edge + description: The type of the output + path: + type: string + description: The absolute path of the file or Serverless Function + digest: + type: string + description: The SHA1 of the file + mode: + type: number + description: The POSIX file permissions + size: + type: number + description: The size of the file in bytes + lambda: + nullable: true + properties: + functionName: + type: string + deployedTo: + items: + type: string + type: array + memorySize: + type: number + timeout: + type: number + layers: + items: + type: string + type: array + required: + - functionName + - deployedTo + type: object + description: 'If the output is a Serverless Function, an object containing the name, location and memory size of the function' + edge: + nullable: true + properties: + regions: + nullable: true + items: + type: string + type: array + description: 'The regions where the edge function will be invoked. Only exists if the edge function as a regional edge function, see: https://vercel.com/docs/concepts/edge-network/regions#setting-edge-function-regions' + required: + - regions + type: object + description: Exists if the output is an edge function. + required: + - path + - digest + - mode + type: object + description: A list of outputs for the Build that can be either Serverless Functions or static files + type: array + description: A list of outputs for the Build that can be either Serverless Functions or static files + fingerprint: + nullable: true + type: string + description: 'If the Build uses the `@vercel/static` Runtime, it contains a hashed string of all outputs' + copiedFrom: + type: string + required: + - id + - deploymentId + - entrypoint + - readyState + - output + type: object + description: An object representing a Build on Vercel + type: array + required: + - builds + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: Deployment was not found + parameters: + - name: deploymentId + description: The deployment unique identifier + in: path + required: true + schema: + type: string + description: The deployment unique identifier + '/v2/deployments/{idOrUrl}/events': + get: + description: Get the build logs of a deployment by deployment ID and build ID. It can work as an infinite stream of logs or as a JSON endpoint depending on the input parameters. + operationId: getDeploymentEvents + security: + - bearerToken: [] + summary: Get deployment events + tags: + - deployments + responses: + '200': + description: |- + A stream of jsonlines where each line is a deployment log item. + Array of deployment logs for the provided query. + content: + application/json: + schema: + type: array + items: + oneOf: + - properties: + type: + type: string + enum: + - command + created: + type: number + payload: + properties: + deploymentId: + type: string + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - deployment-state + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - delimiter + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - exit + created: + type: number + payload: + properties: + date: + type: number + text: + type: string + id: + type: string + deploymentId: + type: string + created: + type: number + serial: + type: string + required: + - date + - id + - deploymentId + - created + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - middleware + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + requestId: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - delimiter + - command + - stdout + - stderr + - exit + - deployment-state + - middleware + - middleware-invocation + - edge-function-invocation + - fatal + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + statusCode: + type: number + requestId: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - oneOf: + - type: object + - properties: + type: + type: string + enum: + - command + created: + type: number + payload: + properties: + deploymentId: + type: string + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - deployment-state + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - delimiter + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - exit + created: + type: number + payload: + properties: + date: + type: number + text: + type: string + id: + type: string + deploymentId: + type: string + created: + type: number + serial: + type: string + required: + - date + - id + - deploymentId + - created + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - middleware + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + requestId: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - delimiter + - command + - stdout + - stderr + - exit + - deployment-state + - middleware + - middleware-invocation + - edge-function-invocation + - fatal + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + statusCode: + type: number + requestId: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + application/stream+json: + schema: + oneOf: + - properties: + type: + type: string + enum: + - command + created: + type: number + payload: + properties: + deploymentId: + type: string + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - deployment-state + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - delimiter + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - exit + created: + type: number + payload: + properties: + date: + type: number + text: + type: string + id: + type: string + deploymentId: + type: string + created: + type: number + serial: + type: string + required: + - date + - id + - deploymentId + - created + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - middleware + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + requestId: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - delimiter + - command + - stdout + - stderr + - exit + - deployment-state + - middleware + - middleware-invocation + - edge-function-invocation + - fatal + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + statusCode: + type: number + requestId: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - oneOf: + - type: object + - properties: + type: + type: string + enum: + - command + created: + type: number + payload: + properties: + deploymentId: + type: string + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - deployment-state + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - delimiter + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + id: + type: string + date: + type: number + serial: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - exit + created: + type: number + payload: + properties: + date: + type: number + text: + type: string + id: + type: string + deploymentId: + type: string + created: + type: number + serial: + type: string + required: + - date + - id + - deploymentId + - created + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - middleware + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + requestId: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + - properties: + type: + type: string + enum: + - delimiter + - command + - stdout + - stderr + - exit + - deployment-state + - middleware + - middleware-invocation + - edge-function-invocation + - fatal + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + required: + - type + - name + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + statusCode: + type: number + requestId: + type: string + required: + - deploymentId + - info + - id + - date + - serial + type: object + required: + - type + - created + - payload + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The deployment was not found + parameters: + - name: idOrUrl + description: The unique identifier or hostname of the deployment. + in: path + required: true + schema: + type: string + example: dpl_5WJWYSyB7BpgTj3EuwF37WMRBXBtPQ2iTMJHJBJyRfd + description: The unique identifier or hostname of the deployment. + - name: direction + description: Order of the returned events based on the timestamp. + in: query + required: false + schema: + type: string + enum: + - backward + - forward + default: forward + example: backward + description: Order of the returned events based on the timestamp. + - name: follow + description: 'When enabled, this endpoint will return live events as they happen.' + in: query + required: false + schema: + type: number + enum: + - 0 + - 1 + example: 1 + description: 'When enabled, this endpoint will return live events as they happen.' + - name: limit + description: Maximum number of events to return. Provide `-1` to return all available logs. + in: query + required: false + schema: + type: number + example: 100 + description: Maximum number of events to return. Provide `-1` to return all available logs. + - name: name + description: Deployment build ID. + in: query + required: false + schema: + type: string + example: bld_cotnkcr76 + description: Deployment build ID. + - name: since + description: Timestamp for when build logs should be pulled from. + in: query + required: false + schema: + type: number + example: 1540095775941 + description: Timestamp for when build logs should be pulled from. + - name: until + description: Timestamp for when the build logs should be pulled up until. + in: query + required: false + schema: + type: number + example: 1540106318643 + description: Timestamp for when the build logs should be pulled up until. + - name: statusCode + description: HTTP status code range to filter events by. + in: query + required: false + schema: + example: 5xx + description: HTTP status code range to filter events by. + oneOf: + - type: number + - type: string + - name: delimiter + in: query + required: false + schema: + type: number + enum: + - 0 + - 1 + example: 1 + - name: builds + in: query + required: false + schema: + type: number + enum: + - 0 + - 1 + example: 1 + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v13/deployments/{idOrUrl}': + get: + description: Retrieves information for a deployment either by supplying its ID (`id` property) or Hostname (`url` property). Additional details will be included when the authenticated user or team is an owner of the deployment. + operationId: getDeployment + security: + - bearerToken: [] + summary: Get a deployment by ID or URL + tags: + - deployments + responses: + '200': + description: |- + The deployment including only public information + The deployment including both public and private information + content: + application/json: + schema: + oneOf: + - properties: + build: + properties: + env: + items: + type: string + type: array + description: The keys of the environment variables that were assigned during the build phase. + example: + - MY_ENV_VAR + required: + - env + type: object + builds: + items: + type: object + type: array + connectBuildsEnabled: + type: boolean + description: The flag saying if Vercel Connect configuration is used for builds + connectConfigurationId: + type: string + description: The ID of Vercel Connect configuration used for this deployment + createdIn: + type: string + description: The region where the deployment was first created + example: sfo1 + env: + items: + type: string + type: array + description: The keys of the environment variables that were assigned during runtime + example: + - MY_SECRET + functions: + nullable: true + additionalProperties: + properties: + memory: + type: number + maxDuration: + type: number + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + type: object + description: An object used to configure your Serverless Functions + example: + api/test.js: + memory: 3008 + type: object + description: An object used to configure your Serverless Functions + example: + api/test.js: + memory: 3008 + inspectorUrl: + nullable: true + type: string + description: Vercel URL to inspect the deployment. + example: 'https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq' + isInConcurrentBuildsQueue: + type: boolean + description: Is the deployment currently queued waiting for a Concurrent Build Slot to be available + example: false + meta: + additionalProperties: + type: string + description: An object containing the deployment's metadata + example: + foo: bar + type: object + description: An object containing the deployment's metadata + example: + foo: bar + monorepoManager: + nullable: true + type: string + description: An monorepo manager that was used for the deployment + example: turbo + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + ownerId: + type: string + description: The unique ID of the user or team the deployment belongs to + example: ZspSRT4ljIEEmMHgoDwKWDei + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + description: The pricing plan the deployment was made under + example: pro + projectId: + type: string + description: The ID of the project the deployment is associated with + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + routes: + nullable: true + items: + oneOf: + - properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + override: + type: boolean + caseSensitive: + type: boolean + check: + type: boolean + important: + type: boolean + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + type: string + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - header + - cookie + - query + key: + type: string + value: + type: string + required: + - type + - key + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + type: string + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - header + - cookie + - query + key: + type: string + value: + type: string + required: + - type + - key + type: object + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + required: + - src + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + - properties: + handle: + type: string + enum: + - error + - filesystem + - hit + - miss + - rewrite + - resource + src: + type: string + dest: + type: string + status: + type: number + required: + - handle + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + - properties: + src: + type: string + continue: + type: boolean + middleware: + type: number + enum: + - 0 + required: + - src + - continue + - middleware + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + type: array + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + gitRepo: + nullable: true + oneOf: + - properties: + namespace: + type: string + projectId: + type: number + type: + type: string + enum: + - gitlab + url: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - team + - user + required: + - namespace + - projectId + - type + - url + - path + - defaultBranch + - name + - private + - ownerType + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + repoOwnerId: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - team + - user + required: + - org + - repo + - repoId + - type + - repoOwnerId + - path + - defaultBranch + - name + - private + - ownerType + type: object + - properties: + owner: + type: string + repoUuid: + type: string + slug: + type: string + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - team + - user + required: + - owner + - repoUuid + - slug + - type + - workspaceUuid + - path + - defaultBranch + - name + - private + - ownerType + type: object + aliasAssignedAt: + nullable: true + oneOf: + - type: number + - type: boolean + lambdas: + items: + properties: + id: + type: string + createdAt: + type: number + entrypoint: + nullable: true + type: string + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - READY + readyStateAt: + type: number + output: + items: + properties: + path: + type: string + functionName: + type: string + required: + - path + - functionName + type: object + type: array + required: + - id + - output + type: object + type: array + public: + type: boolean + description: A boolean representing if the deployment is public or not. By default this is `false` + example: false + readyState: + type: string + enum: + - QUEUED + - BUILDING + - ERROR + - INITIALIZING + - READY + - CANCELED + description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' + example: READY + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + description: The substate of the deployment when the state is "READY" + example: STAGED + regions: + items: + type: string + type: array + description: The regions the deployment exists in + example: + - sfo1 + source: + type: string + enum: + - cli + - git + - import + - import/repo + - clone/repo + description: Where was the deployment created from + example: cli + target: + nullable: true + type: string + enum: + - staging + - production + description: 'If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned' + example: null + team: + properties: + id: + type: string + description: The ID of the team owner + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + name: + type: string + description: The name of the team owner + example: FSociety + slug: + type: string + description: The slug of the team owner + example: fsociety + required: + - id + - name + - slug + type: object + description: The team that owns the deployment if any + type: + type: string + enum: + - LAMBDAS + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + userAliases: + items: + type: string + type: array + description: An array of domains that were provided by the user when creating the Deployment. + example: + - sub1.example.com + - sub2.example.com + version: + type: number + enum: + - 2 + description: The platform version that was used to create the deployment. + example: 2 + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + alias: + items: + type: string + type: array + description: 'A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation' + example: [] + aliasAssigned: + type: boolean + description: A boolean that will be true when the aliases from the alias property were assigned successfully + example: true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + description: 'An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`' + example: null + aliasFinal: + nullable: true + type: string + aliasWarning: + nullable: true + properties: + code: + type: string + message: + type: string + link: + type: string + action: + type: string + required: + - code + - message + type: object + autoAssignCustomDomains: + type: boolean + automaticAliases: + items: + type: string + type: array + bootedAt: + type: number + buildErrorAt: + type: number + buildingAt: + type: number + canceledAt: + type: number + checksState: + type: string + enum: + - registered + - running + - completed + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + creator: + properties: + uid: + type: string + description: The ID of the user that created the deployment + example: 96SnxkFiMyVKsK3pnoHfx3Hz + username: + type: string + description: The username of the user that created the deployment + example: john-doe + required: + - uid + type: object + description: Information about the deployment creator + errorCode: + type: string + errorLink: + type: string + errorMessage: + nullable: true + type: string + errorStep: + type: string + gitSource: + oneOf: + - properties: + type: + type: string + enum: + - github + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - repoId + type: object + - properties: + type: + type: string + enum: + - github + org: + type: string + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - org + - repo + type: object + - properties: + type: + type: string + enum: + - gitlab + projectId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - projectId + type: object + - properties: + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + repoUuid: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - repoUuid + type: object + - properties: + type: + type: string + enum: + - bitbucket + owner: + type: string + slug: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - owner + - slug + type: object + - properties: + type: + type: string + enum: + - custom + ref: + type: string + sha: + type: string + gitUrl: + type: string + required: + - type + - ref + - sha + - gitUrl + type: object + - properties: + type: + type: string + enum: + - github + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - type + - ref + - sha + - repoId + type: object + - properties: + type: + type: string + enum: + - gitlab + ref: + type: string + sha: + type: string + projectId: + type: number + required: + - type + - ref + - sha + - projectId + type: object + - properties: + type: + type: string + enum: + - bitbucket + ref: + type: string + sha: + type: string + owner: + type: string + slug: + type: string + workspaceUuid: + type: string + repoUuid: + type: string + required: + - type + - ref + - sha + - workspaceUuid + - repoUuid + type: object + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + required: + - build + - createdIn + - env + - inspectorUrl + - isInConcurrentBuildsQueue + - meta + - name + - ownerId + - plan + - projectId + - routes + - public + - readyState + - regions + - type + - url + - version + - alias + - aliasAssigned + - bootedAt + - buildingAt + - createdAt + - creator + - id + type: object + description: The deployment including both public and private information + - properties: + lambdas: + items: + properties: + id: + type: string + createdAt: + type: number + entrypoint: + nullable: true + type: string + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - READY + readyStateAt: + type: number + output: + items: + properties: + path: + type: string + functionName: + type: string + required: + - path + - functionName + type: object + type: array + required: + - id + - output + type: object + type: array + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + meta: + additionalProperties: + type: string + description: An object containing the deployment's metadata + example: + foo: bar + type: object + description: An object containing the deployment's metadata + example: + foo: bar + public: + type: boolean + description: A boolean representing if the deployment is public or not. By default this is `false` + example: false + readyState: + type: string + enum: + - QUEUED + - BUILDING + - ERROR + - INITIALIZING + - READY + - CANCELED + description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' + example: READY + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + description: The substate of the deployment when the state is "READY" + example: STAGED + regions: + items: + type: string + type: array + description: The regions the deployment exists in + example: + - sfo1 + source: + type: string + enum: + - cli + - git + - import + - import/repo + - clone/repo + description: Where was the deployment created from + example: cli + target: + nullable: true + type: string + enum: + - staging + - production + description: 'If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned' + example: null + team: + properties: + id: + type: string + description: The ID of the team owner + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + name: + type: string + description: The name of the team owner + example: FSociety + slug: + type: string + description: The slug of the team owner + example: fsociety + required: + - id + - name + - slug + type: object + description: The team that owns the deployment if any + type: + type: string + enum: + - LAMBDAS + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + userAliases: + items: + type: string + type: array + description: An array of domains that were provided by the user when creating the Deployment. + example: + - sub1.example.com + - sub2.example.com + version: + type: number + enum: + - 2 + description: The platform version that was used to create the deployment. + example: 2 + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + alias: + items: + type: string + type: array + description: 'A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation' + example: [] + aliasAssigned: + type: boolean + description: A boolean that will be true when the aliases from the alias property were assigned successfully + example: true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + description: 'An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`' + example: null + aliasFinal: + nullable: true + type: string + aliasWarning: + nullable: true + properties: + code: + type: string + message: + type: string + link: + type: string + action: + type: string + required: + - code + - message + type: object + autoAssignCustomDomains: + type: boolean + automaticAliases: + items: + type: string + type: array + bootedAt: + type: number + buildErrorAt: + type: number + buildingAt: + type: number + canceledAt: + type: number + checksState: + type: string + enum: + - registered + - running + - completed + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + creator: + properties: + uid: + type: string + description: The ID of the user that created the deployment + example: 96SnxkFiMyVKsK3pnoHfx3Hz + username: + type: string + description: The username of the user that created the deployment + example: john-doe + required: + - uid + type: object + description: Information about the deployment creator + errorCode: + type: string + errorLink: + type: string + errorMessage: + nullable: true + type: string + errorStep: + type: string + gitSource: + oneOf: + - properties: + type: + type: string + enum: + - github + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - repoId + type: object + - properties: + type: + type: string + enum: + - github + org: + type: string + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - org + - repo + type: object + - properties: + type: + type: string + enum: + - gitlab + projectId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - projectId + type: object + - properties: + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + repoUuid: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - repoUuid + type: object + - properties: + type: + type: string + enum: + - bitbucket + owner: + type: string + slug: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - owner + - slug + type: object + - properties: + type: + type: string + enum: + - custom + ref: + type: string + sha: + type: string + gitUrl: + type: string + required: + - type + - ref + - sha + - gitUrl + type: object + - properties: + type: + type: string + enum: + - github + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - type + - ref + - sha + - repoId + type: object + - properties: + type: + type: string + enum: + - gitlab + ref: + type: string + sha: + type: string + projectId: + type: number + required: + - type + - ref + - sha + - projectId + type: object + - properties: + type: + type: string + enum: + - bitbucket + ref: + type: string + sha: + type: string + owner: + type: string + slug: + type: string + workspaceUuid: + type: string + repoUuid: + type: string + required: + - type + - ref + - sha + - workspaceUuid + - repoUuid + type: object + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + required: + - name + - meta + - public + - readyState + - regions + - type + - url + - version + - alias + - aliasAssigned + - bootedAt + - buildingAt + - createdAt + - creator + - id + type: object + description: The deployment including only public information + '400': + description: One of the provided values in the request query is invalid. + '403': + description: You do not have permission to access this resource. + '404': + description: The deployment was not found + parameters: + - name: idOrUrl + description: The unique identifier or hostname of the deployment. + in: path + required: true + schema: + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + description: The unique identifier or hostname of the deployment. + type: string + - name: withGitRepoInfo + description: Whether to add in gitRepo information. + in: query + required: false + schema: + description: Whether to add in gitRepo information. + type: string + example: 'true' + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v13/deployments: + post: + description: 'Create a new deployment with all the required and intended data. If the deployment is not a git deployment, all files must be provided with the request, either referenced or inlined. Additionally, a deployment id can be specified to redeploy a previous deployment.' + operationId: createDeployment + security: + - bearerToken: [] + summary: Create a new deployment + tags: + - deployments + responses: + '200': + description: The successfully created deployment + content: + application/json: + schema: + properties: + build: + properties: + env: + items: + type: string + type: array + description: The keys of the environment variables that were assigned during the build phase. + example: + - MY_ENV_VAR + required: + - env + type: object + builds: + items: + type: object + type: array + connectBuildsEnabled: + type: boolean + description: The flag saying if Vercel Connect configuration is used for builds + connectConfigurationId: + type: string + description: The ID of Vercel Connect configuration used for this deployment + createdIn: + type: string + description: The region where the deployment was first created + example: sfo1 + env: + items: + type: string + type: array + description: The keys of the environment variables that were assigned during runtime + example: + - MY_SECRET + functions: + nullable: true + additionalProperties: + properties: + memory: + type: number + maxDuration: + type: number + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + type: object + description: An object used to configure your Serverless Functions + example: + api/test.js: + memory: 3008 + type: object + description: An object used to configure your Serverless Functions + example: + api/test.js: + memory: 3008 + inspectorUrl: + nullable: true + type: string + description: Vercel URL to inspect the deployment. + example: 'https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq' + isInConcurrentBuildsQueue: + type: boolean + description: Is the deployment currently queued waiting for a Concurrent Build Slot to be available + example: false + meta: + additionalProperties: + type: string + description: An object containing the deployment's metadata + example: + foo: bar + type: object + description: An object containing the deployment's metadata + example: + foo: bar + monorepoManager: + nullable: true + type: string + description: An monorepo manager that was used for the deployment + example: turbo + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + ownerId: + type: string + description: The unique ID of the user or team the deployment belongs to + example: ZspSRT4ljIEEmMHgoDwKWDei + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + description: The pricing plan the deployment was made under + example: pro + projectId: + type: string + description: The ID of the project the deployment is associated with + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + routes: + nullable: true + items: + oneOf: + - properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + override: + type: boolean + caseSensitive: + type: boolean + check: + type: boolean + important: + type: boolean + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + type: string + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - header + - cookie + - query + key: + type: string + value: + type: string + required: + - type + - key + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + type: string + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - header + - cookie + - query + key: + type: string + value: + type: string + required: + - type + - key + type: object + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + required: + - src + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + - properties: + handle: + type: string + enum: + - error + - filesystem + - hit + - miss + - rewrite + - resource + src: + type: string + dest: + type: string + status: + type: number + required: + - handle + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + - properties: + src: + type: string + continue: + type: boolean + middleware: + type: number + enum: + - 0 + required: + - src + - continue + - middleware + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + type: array + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + gitRepo: + nullable: true + oneOf: + - properties: + namespace: + type: string + projectId: + type: number + type: + type: string + enum: + - gitlab + url: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - team + - user + required: + - namespace + - projectId + - type + - url + - path + - defaultBranch + - name + - private + - ownerType + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + repoOwnerId: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - team + - user + required: + - org + - repo + - repoId + - type + - repoOwnerId + - path + - defaultBranch + - name + - private + - ownerType + type: object + - properties: + owner: + type: string + repoUuid: + type: string + slug: + type: string + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - team + - user + required: + - owner + - repoUuid + - slug + - type + - workspaceUuid + - path + - defaultBranch + - name + - private + - ownerType + type: object + aliasAssignedAt: + nullable: true + oneOf: + - type: number + - type: boolean + lambdas: + items: + properties: + id: + type: string + createdAt: + type: number + entrypoint: + nullable: true + type: string + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - READY + readyStateAt: + type: number + output: + items: + properties: + path: + type: string + functionName: + type: string + required: + - path + - functionName + type: object + type: array + required: + - id + - output + type: object + type: array + public: + type: boolean + description: A boolean representing if the deployment is public or not. By default this is `false` + example: false + readyState: + type: string + enum: + - QUEUED + - BUILDING + - ERROR + - INITIALIZING + - READY + - CANCELED + description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' + example: READY + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + description: The substate of the deployment when the state is "READY" + example: STAGED + regions: + items: + type: string + type: array + description: The regions the deployment exists in + example: + - sfo1 + source: + type: string + enum: + - cli + - git + - import + - import/repo + - clone/repo + description: Where was the deployment created from + example: cli + target: + nullable: true + type: string + enum: + - staging + - production + description: 'If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned' + example: null + team: + properties: + id: + type: string + description: The ID of the team owner + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + name: + type: string + description: The name of the team owner + example: FSociety + slug: + type: string + description: The slug of the team owner + example: fsociety + required: + - id + - name + - slug + type: object + description: The team that owns the deployment if any + type: + type: string + enum: + - LAMBDAS + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + userAliases: + items: + type: string + type: array + description: An array of domains that were provided by the user when creating the Deployment. + example: + - sub1.example.com + - sub2.example.com + version: + type: number + enum: + - 2 + description: The platform version that was used to create the deployment. + example: 2 + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + alias: + items: + type: string + type: array + description: 'A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation' + example: [] + aliasAssigned: + type: boolean + description: A boolean that will be true when the aliases from the alias property were assigned successfully + example: true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + description: 'An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`' + example: null + aliasFinal: + nullable: true + type: string + aliasWarning: + nullable: true + properties: + code: + type: string + message: + type: string + link: + type: string + action: + type: string + required: + - code + - message + type: object + autoAssignCustomDomains: + type: boolean + automaticAliases: + items: + type: string + type: array + bootedAt: + type: number + buildErrorAt: + type: number + buildingAt: + type: number + canceledAt: + type: number + checksState: + type: string + enum: + - registered + - running + - completed + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + creator: + properties: + uid: + type: string + description: The ID of the user that created the deployment + example: 96SnxkFiMyVKsK3pnoHfx3Hz + username: + type: string + description: The username of the user that created the deployment + example: john-doe + required: + - uid + type: object + description: Information about the deployment creator + errorCode: + type: string + errorLink: + type: string + errorMessage: + nullable: true + type: string + errorStep: + type: string + gitSource: + oneOf: + - properties: + type: + type: string + enum: + - github + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - repoId + type: object + - properties: + type: + type: string + enum: + - github + org: + type: string + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - org + - repo + type: object + - properties: + type: + type: string + enum: + - gitlab + projectId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - projectId + type: object + - properties: + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + repoUuid: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - repoUuid + type: object + - properties: + type: + type: string + enum: + - bitbucket + owner: + type: string + slug: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - owner + - slug + type: object + - properties: + type: + type: string + enum: + - custom + ref: + type: string + sha: + type: string + gitUrl: + type: string + required: + - type + - ref + - sha + - gitUrl + type: object + - properties: + type: + type: string + enum: + - github + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - type + - ref + - sha + - repoId + type: object + - properties: + type: + type: string + enum: + - gitlab + ref: + type: string + sha: + type: string + projectId: + type: number + required: + - type + - ref + - sha + - projectId + type: object + - properties: + type: + type: string + enum: + - bitbucket + ref: + type: string + sha: + type: string + owner: + type: string + slug: + type: string + workspaceUuid: + type: string + repoUuid: + type: string + required: + - type + - ref + - sha + - workspaceUuid + - repoUuid + type: object + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + required: + - build + - createdIn + - env + - inspectorUrl + - isInConcurrentBuildsQueue + - meta + - name + - ownerId + - plan + - projectId + - routes + - public + - readyState + - regions + - type + - url + - version + - alias + - aliasAssigned + - bootedAt + - buildingAt + - createdAt + - creator + - id + type: object + description: The successfully created deployment + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + Deploying to Serverless Functions to multiple regions requires a plan update + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: The deployment project is being transferred + parameters: + - name: forceNew + description: Forces a new deployment even if there is a previous similar deployment + in: query + schema: + description: Forces a new deployment even if there is a previous similar deployment + enum: + - '0' + - '1' + - name: skipAutoDetectionConfirmation + description: Allows to skip framework detection so the API would not fail to ask for confirmation + in: query + schema: + description: Allows to skip framework detection so the API would not fail to ask for confirmation + enum: + - '0' + - '1' + - name: forceNew + description: Forces a new deployment even if there is a previous similar deployment + in: query + schema: + description: Forces a new deployment even if there is a previous similar deployment + enum: + - '0' + - '1' + - name: skipAutoDetectionConfirmation + description: Allows to skip framework detection so the API would not fail to ask for confirmation + in: query + schema: + description: Allows to skip framework detection so the API would not fail to ask for confirmation + enum: + - '0' + - '1' + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + $schema: + description: 'Ignored. Can be set to get completions, validations and documentation in some editors.' + example: + - 'https://openapi.vercel.sh/vercel.json' + type: string + alias: + description: Aliases that will get assigned when the deployment is `READY` and the target is `production`. The client needs to make a `GET` request to its API to ensure the assignment + example: + - example.vercel.app + items: + maxLength: 253 + type: string + maxItems: 50 + maxLength: 253 + type: array + build: + additionalProperties: false + description: An object containing another object with information to be passed to the Build Process + deprecated: true + properties: + env: + additionalProperties: + maxLength: 65536 + type: string + description: An object containing the deployment's environment variable names and values to be passed to Builds. Secrets can be referenced by prefixing the value with `@` + example: + A_SECRET: '@a-secret' + deprecated: true + maxProperties: 100 + minProperties: 0 + type: object + type: object + builds: + description: A list of build descriptions whose src references valid source files. + deprecated: true + items: + additionalProperties: false + properties: + config: + description: 'Optionally, an object including arbitrary metadata to be passed to the Builder' + type: object + src: + description: 'A glob expression or pathname. If more than one file is resolved, one build will be created per matched file. It can include `*` and `**`' + maxLength: 4096 + type: string + use: + description: 'An npm module to be installed by the build process. It can include a semver compatible version (e.g.: `@org/proj@1`)' + maxLength: 256 + type: string + required: + - use + type: object + maxItems: 128 + minItems: 0 + type: array + cleanUrls: + description: 'When set to `true`, all HTML files and Serverless Functions will have their extension removed. When visiting a path that ends with the extension, a 308 response will redirect the client to the extensionless path.' + type: boolean + env: + additionalProperties: + maxLength: 65536 + type: string + description: An object containing the deployment's environment variable names and values. Secrets can be referenced by prefixing the value with `@` + example: + A_SECRET: '@a-secret' + deprecated: true + maxProperties: 100 + minProperties: 0 + type: object + functions: + additionalProperties: + additionalProperties: false + properties: + excludeFiles: + description: 'A glob pattern to match files that should be excluded from your Serverless Function. If you’re using a Community Runtime, the behavior might vary.' + maxLength: 256 + type: string + includeFiles: + description: 'A glob pattern to match files that should be included in your Serverless Function. If you’re using a Community Runtime, the behavior might vary.' + maxLength: 256 + type: string + maxDuration: + description: An integer defining how long your Serverless Function should be allowed to run on every request in seconds (between 1 and the maximum limit of your plan). + maximum: 900 + minimum: 1 + type: number + memory: + description: An integer defining the memory your Serverless Function should be provided with (between 128 and 3008). + maximum: 3008 + minimum: 128 + type: number + runtime: + description: 'The npm package name of a Runtime, including its version' + maxLength: 256 + type: string + type: object + description: An object describing custom options for your Serverless Functions. Each key must be glob pattern that matches the paths of the Serverless Functions you would like to customize (like `api/*.js` or `api/test.js`). + example: + src/pages/**: + maxDuration: 6 + memory: 1024 + maxProperties: 50 + minProperties: 1 + type: object + git: + type: object + properties: + deploymentEnabled: + description: Specifies the branches that will not trigger an auto-deployment when committing to them. Any non specified branch is `true` by default. + example: + main: false + oneOf: + - type: boolean + - type: object + additionalProperties: + type: boolean + headers: + type: array + maxItems: 1024 + description: A list of header definitions. + items: + type: object + additionalProperties: false + required: + - source + - headers + properties: + source: + description: A pattern that matches each incoming pathname (excluding querystring) + type: string + maxLength: 4096 + headers: + description: An array of key/value pairs representing each response header. + type: array + maxItems: 1024 + items: + type: object + additionalProperties: false + required: + - key + - value + properties: + key: + type: string + maxLength: 4096 + value: + type: string + maxLength: 4096 + has: + description: An array of requirements that are needed to match + type: array + maxItems: 16 + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + properties: + type: + description: The type of request element to check + type: string + enum: + - host + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + additionalProperties: false + required: + - type + - key + properties: + type: + description: The type of request element to check + type: string + enum: + - header + - cookie + - query + key: + description: The name of the element contained in the particular type + type: string + maxLength: 4096 + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + missing: + description: An array of requirements that are needed to match + type: array + maxItems: 16 + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + properties: + type: + description: The type of request element to check + type: string + enum: + - host + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + additionalProperties: false + required: + - type + - key + properties: + type: + description: The type of request element to check + type: string + enum: + - header + - cookie + - query + key: + description: The name of the element contained in the particular type + type: string + maxLength: 4096 + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + images: + type: object + additionalProperties: false + required: + - sizes + properties: + contentDispositionType: + enum: + - inline + - attachment + contentSecurityPolicy: + type: string + maxLength: 256 + dangerouslyAllowSVG: + type: boolean + domains: + type: array + minItems: 0 + maxItems: 50 + items: + type: string + maxLength: 256 + formats: + type: array + minItems: 1 + maxItems: 4 + items: + enum: + - image/avif + - image/webp + - image/jpeg + - image/png + minimumCacheTTL: + type: integer + minimum: 1 + maximum: 315360000 + remotePatterns: + type: array + minItems: 0 + maxItems: 50 + items: + type: object + additionalProperties: false + required: + - hostname + properties: + protocol: + enum: + - http + - https + hostname: + type: string + maxLength: 256 + port: + type: string + maxLength: 5 + pathname: + type: string + maxLength: 256 + sizes: + type: array + minItems: 1 + maxItems: 50 + items: + type: number + name: + description: A string with the project name used in the deployment URL + example: my-instant-deployment + type: string + public: + description: Whether a deployment's source and logs are available publicly + type: boolean + redirects: + title: Redirects + type: array + maxItems: 1024 + description: A list of redirect definitions. + items: + type: object + additionalProperties: false + required: + - source + - destination + properties: + source: + description: A pattern that matches each incoming pathname (excluding querystring). + type: string + maxLength: 4096 + destination: + description: A location destination defined as an absolute pathname or external URL. + type: string + maxLength: 4096 + permanent: + description: 'A boolean to toggle between permanent and temporary redirect. When `true`, the status code is `308`. When `false` the status code is `307`.' + type: boolean + has: + description: An array of requirements that are needed to match + type: array + maxItems: 16 + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + properties: + type: + description: The type of request element to check + type: string + enum: + - host + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + additionalProperties: false + required: + - type + - key + properties: + type: + description: The type of request element to check + type: string + enum: + - header + - cookie + - query + key: + description: The name of the element contained in the particular type + type: string + maxLength: 4096 + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + missing: + description: An array of requirements that are needed to match + type: array + maxItems: 16 + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + properties: + type: + description: The type of request element to check + type: string + enum: + - host + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + additionalProperties: false + required: + - type + - key + properties: + type: + description: The type of request element to check + type: string + enum: + - header + - cookie + - query + key: + description: The name of the element contained in the particular type + type: string + maxLength: 4096 + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + regions: + description: An array of the regions the deployment's Serverless Functions should be deployed to + example: + - sfo + - bru + items: + maxLength: 256 + type: string + maxItems: 1000 + minItems: 1 + type: array + rewrites: + type: array + maxItems: 1024 + description: A list of rewrite definitions. + items: + type: object + additionalProperties: false + required: + - source + - destination + properties: + source: + description: A pattern that matches each incoming pathname (excluding querystring). + type: string + maxLength: 4096 + destination: + description: An absolute pathname to an existing resource or an external URL. + type: string + maxLength: 4096 + has: + description: An array of requirements that are needed to match + type: array + maxItems: 16 + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + properties: + type: + description: The type of request element to check + type: string + enum: + - host + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + additionalProperties: false + required: + - type + - key + properties: + type: + description: The type of request element to check + type: string + enum: + - header + - cookie + - query + key: + description: The name of the element contained in the particular type + type: string + maxLength: 4096 + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + missing: + description: An array of requirements that are needed to match + type: array + maxItems: 16 + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + properties: + type: + description: The type of request element to check + type: string + enum: + - host + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + additionalProperties: false + required: + - type + - key + properties: + type: + description: The type of request element to check + type: string + enum: + - header + - cookie + - query + key: + description: The name of the element contained in the particular type + type: string + maxLength: 4096 + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + routes: + type: array + maxItems: 1024 + deprecated: true + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - dest: 'https://docs.example.com' + src: /docs + items: + anyOf: + - type: object + required: + - src + additionalProperties: false + properties: + src: + type: string + maxLength: 4096 + dest: + type: string + maxLength: 4096 + headers: + type: object + additionalProperties: + type: string + maxLength: 4096 + minProperties: 1 + maxProperties: 100 + methods: + type: array + maxItems: 10 + items: + type: string + maxLength: 32 + caseSensitive: + type: boolean + important: + type: boolean + user: + type: boolean + continue: + type: boolean + override: + type: boolean + check: + type: boolean + isInternal: + type: boolean + status: + type: integer + minimum: 100 + maximum: 999 + locale: + type: object + additionalProperties: false + minProperties: 1 + properties: + redirect: + type: object + additionalProperties: + type: string + maxLength: 4096 + minProperties: 1 + maxProperties: 100 + value: + type: string + maxLength: 4096 + path: + type: string + maxLength: 4096 + cookie: + type: string + maxLength: 4096 + default: + type: string + maxLength: 4096 + middleware: + type: number + middlewarePath: + type: string + middlewareRawSrc: + type: array + items: + type: string + has: + description: An array of requirements that are needed to match + type: array + maxItems: 16 + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + properties: + type: + description: The type of request element to check + type: string + enum: + - host + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + additionalProperties: false + required: + - type + - key + properties: + type: + description: The type of request element to check + type: string + enum: + - header + - cookie + - query + key: + description: The name of the element contained in the particular type + type: string + maxLength: 4096 + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + missing: + description: An array of requirements that are needed to match + type: array + maxItems: 16 + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + properties: + type: + description: The type of request element to check + type: string + enum: + - host + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + additionalProperties: false + required: + - type + - key + properties: + type: + description: The type of request element to check + type: string + enum: + - header + - cookie + - query + key: + description: The name of the element contained in the particular type + type: string + maxLength: 4096 + value: + description: A regular expression used to match the value. Named groups can be used in the destination + type: string + maxLength: 4096 + - type: object + required: + - handle + additionalProperties: false + properties: + handle: + type: string + maxLength: 32 + enum: + - error + - filesystem + - hit + - miss + - resource + - rewrite + trailingSlash: + description: 'When `false`, visiting a path that ends with a forward slash will respond with a `308` status code and redirect to the path without the trailing slash.' + type: boolean + buildCommand: + description: The build command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + ignoreCommand: + maxLength: 256 + type: string + nullable: true + devCommand: + description: The dev command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + framework: + description: The framework that is being used for this project. When `null` is used no framework is selected + type: string + enum: + - null + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + nullable: true + installCommand: + description: The install command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + outputDirectory: + description: The output directory of the project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + crons: + description: An array of cron jobs that should be created for production Deployments. + type: array + maxItems: 20 + items: + type: object + required: + - schedule + - path + properties: + schedule: + type: string + maxLength: 256 + path: + type: string + maxLength: 512 + pattern: ^/.* + deploymentId: + description: An deployment id for an existing deployment to redeploy + type: string + files: + description: A list of objects with the files to be deployed + items: + oneOf: + - additionalProperties: false + description: Used in the case you want to inline a file inside the request + properties: + data: + description: 'The file content, it could be either a `base64` (useful for images, etc.) of the files or the plain content for source code' + type: string + encoding: + description: 'The file content encoding, it could be either a base64 (useful for images, etc.) of the files or the plain text for source code.' + enum: + - base64 + - utf-8 + file: + description: The file name including the whole path + example: folder/file.js + type: string + required: + - file + - data + title: InlinedFile + type: object + - additionalProperties: false + description: Used in the case you want to reference a file that was already uploaded + properties: + file: + description: The file path relative to the project root + example: folder/file.js + type: string + sha: + description: 'The file contents hashed with SHA1, used to check the integrity' + type: string + size: + description: The file size in bytes + type: integer + required: + - file + title: UploadedFile + type: object + type: array + gitMetadata: + description: Populates initial git metadata for different git providers. + additionalProperties: false + type: object + properties: + remoteUrl: + type: string + description: The git repository's remote origin url + example: 'https://github.com/vercel/next.js' + commitAuthorName: + type: string + description: The name of the author of the commit + example: kyliau + commitMessage: + type: string + description: The commit message + example: add method to measure Interaction to Next Paint (INP) (#36490) + commitRef: + type: string + description: The branch on which the commit was made + example: main + commitSha: + type: string + description: The hash of the commit + example: dc36199b2234c6586ebe05ec94078a895c707e29 + dirty: + type: boolean + description: Whether or not there have been modifications to the working tree since the latest commit + example: true + gitSource: + description: Defines the Git Repository source to be deployed. This property can not be used in combination with `files`. + anyOf: + - properties: + ref: + type: string + repoId: + oneOf: + - type: number + - type: string + sha: + type: string + type: + enum: + - github + type: string + required: + - type + - ref + - repoId + type: object + - properties: + org: + type: string + ref: + type: string + repo: + type: string + sha: + type: string + type: + enum: + - github + type: string + required: + - type + - ref + - org + - repo + type: object + - properties: + projectId: + oneOf: + - type: number + - type: string + ref: + type: string + sha: + type: string + type: + enum: + - gitlab + type: string + required: + - type + - ref + - projectId + type: object + - properties: + ref: + type: string + repoUuid: + type: string + sha: + type: string + type: + enum: + - bitbucket + type: string + workspaceUuid: + type: string + required: + - type + - ref + - repoUuid + type: object + - properties: + owner: + type: string + ref: + type: string + sha: + type: string + slug: + type: string + type: + enum: + - bitbucket + type: string + required: + - type + - ref + - owner + - slug + type: object + meta: + additionalProperties: + maxLength: 65536 + type: string + description: An object containing the deployment's metadata. Multiple key-value pairs can be attached to a deployment + example: + foo: bar + maxProperties: 100 + type: object + monorepoManager: + description: The monorepo manager that is being used for this deployment. When `null` is used no monorepo manager is selected + type: string + nullable: true + project: + type: object + required: + - id + - region_id + - name + - pg_version + - proxy_host + - branch_logical_size_limit + - branch_logical_size_limit_bytes + - store_passwords + - created_at + - updated_at + - owner_id + properties: + id: + type: string + region_id: + type: string + name: + type: string + pg_version: + type: number + proxy_host: + type: string + branch_logical_size_limit: + type: number + description: The logical size limit for a branch in MiB. + branch_logical_size_limit_bytes: + type: number + description: The logical size limit for a branch in bytes. + synthetic_storage_size: + type: number + description: The data storage size in bytes. + store_passwords: + type: boolean + created_at: + type: string + updated_at: + type: string + owner_id: + type: string + quota_reset_at: + type: string + data_storage_bytes_hour: + type: number + data_transfer_bytes: + type: number + written_data_bytes: + type: number + active_time_seconds: + type: number + compute_time_seconds: + type: number + settings: + type: object + properties: + quota: + type: object + properties: + compute_time_seconds: + type: number + description: The total amount of CPU seconds allowed to be spent by a project's compute endpoints. + active_time_seconds: + type: number + description: The total amount of wall-clock time allowed to be spent by a project's compute endpoints. + written_data_bytes: + type: number + description: The total amount of data written to all project's branches. + data_transfer_bytes: + type: number + description: The total amount of data transferred from all project's branches using proxy. + logical_size_bytes: + type: number + description: The logical size of every project's branch. + projectSettings: + additionalProperties: false + description: Project settings that will be applied to the deployment. It is required for the first deployment of a project and will be saved for any following deployments + properties: + buildCommand: + description: The build command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + commandForIgnoringBuildStep: + maxLength: 256 + type: string + nullable: true + devCommand: + description: The dev command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + framework: + description: The framework that is being used for this project. When `null` is used no framework is selected + type: string + enum: + - null + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + nullable: true + installCommand: + description: The install command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + outputDirectory: + description: The output directory of the project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + rootDirectory: + description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root + maxLength: 256 + type: string + nullable: true + serverlessFunctionRegion: + description: The region to deploy Serverless Functions in this project + maxLength: 4 + type: string + nullable: true + skipGitConnectDuringLink: + description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. + type: boolean + deprecated: true + sourceFilesOutsideRootDirectory: + description: 'Indicates if there are source files outside of the root directory, typically used for monorepos' + type: boolean + type: object + target: + description: 'Either not defined, `staging`, or `production`. If `staging`, a staging alias in the format `-.vercel.app` will be assigned. If `production`, any aliases defined in `alias` will be assigned. If omitted, the target will be `preview`' + enum: + - staging + - production + type: string + withLatestCommit: + description: 'When `true` and `deploymentId` is passed in, the sha from the previous deployment''s `gitSource` is removed forcing the latest commit to be used.' + type: boolean + connection_uris: + type: array + items: + type: object + required: + - connection_uri + properties: + connection_uri: + type: string + example: 'postgres://user:pw@endpoint.us-east-2.aws.neon.tech/neondb' + roles: + type: array + items: + type: object + required: + - branch_id + - name + - created_at + - updated_at + properties: + branch_id: + type: string + name: + type: string + created_at: + type: string + updated_at: + type: string + protected: + type: boolean + password: + type: string + databases: + type: array + items: + type: object + required: + - id + - branch_id + - name + - owner_name + - created_at + - updated_at + properties: + id: + type: number + branch_id: + type: string + name: + type: string + owner_name: + type: string + created_at: + type: string + updated_at: + type: string + branch: + type: object + required: + - id + - project_id + - name + - current_state + - primary + - created_at + - updated_at + properties: + id: + type: string + project_id: + type: string + name: + type: string + current_state: + type: string + enum: + - init + - ready + primary: + type: boolean + created_at: + type: string + updated_at: + type: string + parent_id: + type: string + endpoints: + type: array + items: + type: object + required: + - host + - id + - project_id + - branch_id + - autoscaling_limit_min_cu + - autoscaling_limit_max_cu + - region_id + - type + - current_state + - pooler_enabled + - pooler_mode + - disabled + - passwordless_access + - created_at + - updated_at + - suspend_timeout_seconds + properties: + host: + type: string + id: + type: string + project_id: + type: string + branch_id: + type: string + autoscaling_limit_min_cu: + type: number + autoscaling_limit_max_cu: + type: number + region_id: + type: string + type: + type: string + current_state: + type: string + pooler_enabled: + type: boolean + pooler_mode: + type: string + disabled: + type: boolean + passwordless_access: + type: boolean + last_active: + type: string + created_at: + type: string + updated_at: + type: string + suspend_timeout_seconds: + type: number + endpoint: + type: object + required: + - host + - id + - project_id + - branch_id + - autoscaling_limit_min_cu + - autoscaling_limit_max_cu + - region_id + - type + - current_state + - pooler_enabled + - pooler_mode + - disabled + - passwordless_access + - created_at + - updated_at + - suspend_timeout_seconds + properties: + host: + type: string + id: + type: string + project_id: + type: string + branch_id: + type: string + autoscaling_limit_min_cu: + type: number + autoscaling_limit_max_cu: + type: number + region_id: + type: string + type: + type: string + current_state: + type: string + pooler_enabled: + type: boolean + pooler_mode: + type: string + disabled: + type: boolean + passwordless_access: + type: boolean + last_active: + type: string + created_at: + type: string + updated_at: + type: string + suspend_timeout_seconds: + type: number + database: + type: object + required: + - id + - branch_id + - name + - owner_name + - created_at + - updated_at + properties: + id: + type: number + branch_id: + type: string + name: + type: string + owner_name: + type: string + created_at: + type: string + updated_at: + type: string + role: + type: object + required: + - branch_id + - name + - created_at + - updated_at + properties: + branch_id: + type: string + name: + type: string + created_at: + type: string + updated_at: + type: string + protected: + type: boolean + password: + type: string + password: + type: string + projects: + type: array + items: + type: object + required: + - id + - data_storage_bytes_hour + - data_transfer_bytes + - written_data_bytes + - compute_time_seconds + - synthetic_storage_size + properties: + id: + type: string + data_storage_bytes_hour: + type: number + data_storage_bytes_hour_updated_at: + type: string + data_transfer_bytes: + type: number + data_transfer_bytes_updated_at: + type: string + written_data_bytes: + type: number + written_data_bytes_updated_at: + type: string + compute_time_seconds: + type: number + compute_time_seconds_updated_at: + type: string + synthetic_storage_size: + type: number + synthetic_storage_size_updated_at: + type: string + pagination: + type: object + required: + - cursor + properties: + cursor: + type: string + required: + - name + - project + - connection_uris + - roles + - databases + - branch + - endpoints + - endpoint + - database + - role + - password + - projects + - pagination + '/v12/deployments/{id}/cancel': + patch: + description: 'This endpoint allows you to cancel a deployment which is currently building, by supplying its `id` in the URL.' + operationId: cancelDeployment + security: + - bearerToken: [] + summary: Cancel a deployment + tags: + - deployments + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + build: + properties: + env: + items: + type: string + type: array + description: The keys of the environment variables that were assigned during the build phase. + example: + - MY_ENV_VAR + required: + - env + type: object + builds: + items: + type: object + type: array + connectBuildsEnabled: + type: boolean + description: The flag saying if Vercel Connect configuration is used for builds + connectConfigurationId: + type: string + description: The ID of Vercel Connect configuration used for this deployment + createdIn: + type: string + description: The region where the deployment was first created + example: sfo1 + env: + items: + type: string + type: array + description: The keys of the environment variables that were assigned during runtime + example: + - MY_SECRET + functions: + nullable: true + additionalProperties: + properties: + memory: + type: number + maxDuration: + type: number + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + type: object + description: An object used to configure your Serverless Functions + example: + api/test.js: + memory: 3008 + type: object + description: An object used to configure your Serverless Functions + example: + api/test.js: + memory: 3008 + inspectorUrl: + nullable: true + type: string + description: Vercel URL to inspect the deployment. + example: 'https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq' + isInConcurrentBuildsQueue: + type: boolean + description: Is the deployment currently queued waiting for a Concurrent Build Slot to be available + example: false + meta: + additionalProperties: + type: string + description: An object containing the deployment's metadata + example: + foo: bar + type: object + description: An object containing the deployment's metadata + example: + foo: bar + monorepoManager: + nullable: true + type: string + description: An monorepo manager that was used for the deployment + example: turbo + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + ownerId: + type: string + description: The unique ID of the user or team the deployment belongs to + example: ZspSRT4ljIEEmMHgoDwKWDei + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + description: The pricing plan the deployment was made under + example: pro + projectId: + type: string + description: The ID of the project the deployment is associated with + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + routes: + nullable: true + items: + oneOf: + - properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + override: + type: boolean + caseSensitive: + type: boolean + check: + type: boolean + important: + type: boolean + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + type: string + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - header + - cookie + - query + key: + type: string + value: + type: string + required: + - type + - key + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + type: string + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - header + - cookie + - query + key: + type: string + value: + type: string + required: + - type + - key + type: object + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + required: + - src + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + - properties: + handle: + type: string + enum: + - error + - filesystem + - hit + - miss + - rewrite + - resource + src: + type: string + dest: + type: string + status: + type: number + required: + - handle + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + - properties: + src: + type: string + continue: + type: boolean + middleware: + type: number + enum: + - 0 + required: + - src + - continue + - middleware + type: object + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + type: array + description: A list of routes objects used to rewrite paths to point towards other internal or external paths + example: + - src: /docs + dest: 'https://docs.example.com' + gitRepo: + nullable: true + oneOf: + - properties: + namespace: + type: string + projectId: + type: number + type: + type: string + enum: + - gitlab + url: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - user + - team + required: + - namespace + - projectId + - type + - url + - path + - defaultBranch + - name + - private + - ownerType + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + repoOwnerId: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - user + - team + required: + - org + - repo + - repoId + - type + - repoOwnerId + - path + - defaultBranch + - name + - private + - ownerType + type: object + - properties: + owner: + type: string + repoUuid: + type: string + slug: + type: string + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + ownerType: + type: string + enum: + - user + - team + required: + - owner + - repoUuid + - slug + - type + - workspaceUuid + - path + - defaultBranch + - name + - private + - ownerType + type: object + aliasAssignedAt: + nullable: true + oneOf: + - type: number + - type: boolean + lambdas: + items: + properties: + id: + type: string + createdAt: + type: number + entrypoint: + nullable: true + type: string + readyState: + type: string + enum: + - INITIALIZING + - BUILDING + - READY + - ERROR + readyStateAt: + type: number + output: + items: + properties: + path: + type: string + functionName: + type: string + required: + - path + - functionName + type: object + type: array + required: + - id + - output + type: object + type: array + public: + type: boolean + description: A boolean representing if the deployment is public or not. By default this is `false` + example: false + readyState: + type: string + enum: + - INITIALIZING + - BUILDING + - READY + - ERROR + - QUEUED + - CANCELED + description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' + example: READY + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + description: The substate of the deployment when the state is "READY" + example: STAGED + regions: + items: + type: string + type: array + description: The regions the deployment exists in + example: + - sfo1 + source: + type: string + enum: + - cli + - git + - import + - import/repo + - clone/repo + description: Where was the deployment created from + example: cli + target: + nullable: true + type: string + enum: + - staging + - production + description: 'If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned' + example: null + team: + properties: + id: + type: string + description: The ID of the team owner + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + name: + type: string + description: The name of the team owner + example: FSociety + slug: + type: string + description: The slug of the team owner + example: fsociety + required: + - id + - name + - slug + type: object + description: The team that owns the deployment if any + type: + type: string + enum: + - LAMBDAS + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + userAliases: + items: + type: string + type: array + description: An array of domains that were provided by the user when creating the Deployment. + example: + - sub1.example.com + - sub2.example.com + version: + type: number + enum: + - 2 + description: The platform version that was used to create the deployment. + example: 2 + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + alias: + items: + type: string + type: array + description: 'A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation' + example: [] + aliasAssigned: + type: boolean + description: A boolean that will be true when the aliases from the alias property were assigned successfully + example: true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + description: 'An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`' + example: null + aliasFinal: + nullable: true + type: string + aliasWarning: + nullable: true + properties: + code: + type: string + message: + type: string + link: + type: string + action: + type: string + required: + - code + - message + type: object + autoAssignCustomDomains: + type: boolean + automaticAliases: + items: + type: string + type: array + bootedAt: + type: number + buildErrorAt: + type: number + buildingAt: + type: number + canceledAt: + type: number + checksState: + type: string + enum: + - registered + - running + - completed + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + creator: + properties: + uid: + type: string + description: The ID of the user that created the deployment + example: 96SnxkFiMyVKsK3pnoHfx3Hz + username: + type: string + description: The username of the user that created the deployment + example: john-doe + required: + - uid + type: object + description: Information about the deployment creator + errorCode: + type: string + errorLink: + type: string + errorMessage: + nullable: true + type: string + errorStep: + type: string + gitSource: + oneOf: + - properties: + type: + type: string + enum: + - github + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - repoId + type: object + - properties: + type: + type: string + enum: + - github + org: + type: string + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - org + - repo + type: object + - properties: + type: + type: string + enum: + - gitlab + projectId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - projectId + type: object + - properties: + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + repoUuid: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - repoUuid + type: object + - properties: + type: + type: string + enum: + - bitbucket + owner: + type: string + slug: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - type + - owner + - slug + type: object + - properties: + type: + type: string + enum: + - custom + ref: + type: string + sha: + type: string + gitUrl: + type: string + required: + - type + - ref + - sha + - gitUrl + type: object + - properties: + type: + type: string + enum: + - github + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - type + - ref + - sha + - repoId + type: object + - properties: + type: + type: string + enum: + - gitlab + ref: + type: string + sha: + type: string + projectId: + type: number + required: + - type + - ref + - sha + - projectId + type: object + - properties: + type: + type: string + enum: + - bitbucket + ref: + type: string + sha: + type: string + owner: + type: string + slug: + type: string + workspaceUuid: + type: string + repoUuid: + type: string + required: + - type + - ref + - sha + - workspaceUuid + - repoUuid + type: object + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + required: + - build + - createdIn + - env + - inspectorUrl + - isInConcurrentBuildsQueue + - meta + - name + - ownerId + - plan + - projectId + - routes + - public + - readyState + - regions + - type + - url + - version + - alias + - aliasAssigned + - bootedAt + - buildingAt + - createdAt + - creator + - id + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: id + description: The unique identifier of the deployment. + in: path + required: true + schema: + type: string + example: dpl_5WJWYSyB7BpgTj3EuwF37WMRBXBtPQ2iTMJHJBJyRfd + description: The unique identifier of the deployment. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v2/files: + post: + description: 'Before you create a deployment you need to upload the required files for that deployment. To do it, you need to first upload each file to this endpoint. Once that''s completed, you can create a new deployment with the uploaded files. The file content must be placed inside the body of the request. In the case of a successful response you''ll receive a status code 200 with an empty body.' + operationId: uploadFile + security: + - bearerToken: [] + summary: Upload Deployment Files + tags: + - deployments + responses: + '200': + description: |- + File already uploaded + File successfully uploaded + content: + application/json: + schema: + oneOf: + - properties: + urls: + items: + type: string + type: array + description: Array of URLs where the file was updated + example: + - example-upload.aws.com + required: + - urls + type: object + - type: object + '400': + description: |- + One of the provided values in the headers is invalid + Digest is not valid + File size is not valid + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - in: header + description: The file size in bytes + schema: + description: The file size in bytes + type: number + name: Content-Length + - in: header + description: The file SHA1 used to check the integrity + schema: + type: string + description: The file SHA1 used to check the integrity + maxLength: 40 + name: x-vercel-digest + - in: header + description: The file SHA1 used to check the integrity + schema: + deprecated: true + type: string + description: The file SHA1 used to check the integrity + maxLength: 40 + name: x-now-digest + - in: header + description: The file size as an alternative to `Content-Length` + schema: + type: number + deprecated: true + description: The file size as an alternative to `Content-Length` + name: x-now-size + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v6/deployments/{id}/files': + get: + description: Allows to retrieve the file structure of a deployment by supplying the deployment unique identifier. + operationId: listDeploymentFiles + security: + - bearerToken: [] + summary: List Deployment Files + tags: + - deployments + responses: + '200': + description: Retrieved the file tree successfully + content: + application/json: + schema: + items: + $ref: '#/components/schemas/FileTree' + type: array + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: |- + File tree not found + Deployment not found + parameters: + - name: id + description: The unique deployment identifier + in: path + required: true + schema: + description: The unique deployment identifier + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v6/deployments/{id}/files/{fileId}': + get: + description: Allows to retrieve the content of a file by supplying the file identifier and the deployment unique identifier. The response body will contain the raw content of the file. + operationId: getDeploymentFileContents + security: + - bearerToken: [] + summary: Get Deployment File Contents + tags: + - deployments + responses: + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: |- + File not found + Deployment not found + parameters: + - name: id + description: The unique deployment identifier + in: path + required: true + schema: + description: The unique deployment identifier + type: string + - name: fileId + description: The unique file identifier + in: path + required: true + schema: + description: The unique file identifier + type: string + - name: path + description: Path to the file to fetch (only for Git deployments) + in: query + required: false + schema: + description: Path to the file to fetch (only for Git deployments) + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v6/deployments: + get: + description: 'List deployments under the authenticated user or team. If a deployment hasn''t finished uploading (is incomplete), the `url` property will have a value of `null`.' + operationId: getDeployments + security: + - bearerToken: [] + summary: List deployments + tags: + - deployments + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + pagination: + $ref: '#/components/schemas/Pagination' + deployments: + items: + properties: + uid: + type: string + description: The unique identifier of the deployment. + example: dpl_2euZBFqxYdDMDG1jTrHFnNZ2eUVa + name: + type: string + description: The name of the deployment. + example: docs + url: + type: string + description: The URL of the deployment. + example: docs-9jaeg38me.vercel.app + created: + type: number + description: Timestamp of when the deployment got created. + example: 1609492210000 + source: + type: string + enum: + - cli + - git + - import + - import/repo + - clone/repo + description: The source of the deployment. + example: cli + state: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + description: In which state is the deployment. + example: READY + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + description: In which state is the deployment. + example: READY + type: + type: string + enum: + - LAMBDAS + description: The type of the deployment. + example: LAMBDAS + creator: + properties: + uid: + type: string + description: The unique identifier of the user. + example: eLrCnEgbKhsHyfbiNR7E8496 + email: + type: string + description: The email address of the user. + example: example@example.com + username: + type: string + description: The username of the user. + example: johndoe + githubLogin: + type: string + description: The GitHub login of the user. + example: johndoe + gitlabLogin: + type: string + description: The GitLab login of the user. + example: johndoe + required: + - uid + type: object + description: Metadata information of the user who created the deployment. + meta: + additionalProperties: + type: string + description: Metadata information from the Git provider. + type: object + description: Metadata information from the Git provider. + target: + nullable: true + type: string + enum: + - production + - staging + description: On which environment has the deployment been deployed to. + example: production + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + description: An error object in case aliasing of the deployment failed. + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + createdAt: + type: number + description: Timestamp of when the deployment got created. + example: 1609492210000 + buildingAt: + type: number + description: Timestamp of when the deployment started building at. + example: 1609492210000 + ready: + type: number + description: Timestamp of when the deployment got ready. + example: 1609492210000 + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + description: 'Since June 2023 Substate of deployment when readyState is ''READY'' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - PROMOTED: has seen production traffic' + checksState: + type: string + enum: + - registered + - running + - completed + description: State of all registered checks + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + description: Conclusion for checks + inspectorUrl: + nullable: true + type: string + description: Vercel URL to inspect the deployment. + example: 'https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq' + isRollbackCandidate: + nullable: true + type: boolean + description: Deployment can be used for instant rollback + projectSettings: + properties: + framework: + nullable: true + type: string + enum: + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + gitForkProtection: + type: boolean + customerSupportCodeVisibility: + type: boolean + gitLFS: + type: boolean + devCommand: + nullable: true + type: string + installCommand: + nullable: true + type: string + buildCommand: + nullable: true + type: string + nodeVersion: + type: string + enum: + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + outputDirectory: + nullable: true + type: string + publicSource: + nullable: true + type: boolean + rootDirectory: + nullable: true + type: string + serverlessFunctionRegion: + nullable: true + type: string + sourceFilesOutsideRootDirectory: + type: boolean + commandForIgnoringBuildStep: + nullable: true + type: string + createdAt: + type: number + skipGitConnectDuringLink: + type: boolean + gitComments: + properties: + onPullRequest: + type: boolean + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + description: Whether the Vercel bot should comment on commits + required: + - onPullRequest + - onCommit + type: object + description: Since June '23 + type: object + description: The project settings which was used for this deployment + connectBuildsEnabled: + type: boolean + description: The flag saying if Vercel Connect configuration is used for builds + connectConfigurationId: + type: string + description: The ID of Vercel Connect configuration used for this deployment + required: + - uid + - name + - url + - created + - type + - creator + - inspectorUrl + type: object + type: array + required: + - pagination + - deployments + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '422': + description: '' + parameters: + - name: app + description: Name of the deployment. + in: query + schema: + description: Name of the deployment. + type: string + example: docs + - name: from + description: 'Gets the deployment created after this Date timestamp. (default: current time)' + in: query + schema: + description: 'Gets the deployment created after this Date timestamp. (default: current time)' + type: number + example: 1612948664566 + deprecated: true + - name: limit + description: Maximum number of deployments to list from a request. + in: query + schema: + description: Maximum number of deployments to list from a request. + type: number + example: 10 + - name: projectId + description: Filter deployments from the given `projectId`. + in: query + schema: + description: Filter deployments from the given `projectId`. + type: string + example: QmXGTs7mvAMMC7WW5ebrM33qKG32QK3h4vmQMjmY + - name: target + description: Filter deployments based on the environment. + in: query + schema: + description: Filter deployments based on the environment. + type: string + enum: + - production + - preview + example: production + - name: to + description: 'Gets the deployment created before this Date timestamp. (default: current time)' + in: query + schema: + description: 'Gets the deployment created before this Date timestamp. (default: current time)' + type: number + example: 1612948664566 + deprecated: true + - name: users + description: Filter out deployments based on users who have created the deployment. + in: query + schema: + description: Filter out deployments based on users who have created the deployment. + type: string + example: 'kr1PsOIzqEL5Xg6M4VZcZosf,K4amb7K9dAt5R2vBJWF32bmY' + - name: since + description: Get Deployments created after this JavaScript timestamp. + in: query + schema: + description: Get Deployments created after this JavaScript timestamp. + type: number + example: 1540095775941 + - name: until + description: Get Deployments created before this JavaScript timestamp. + in: query + schema: + description: Get Deployments created before this JavaScript timestamp. + type: number + example: 1540095775951 + - name: state + description: 'Filter deployments based on their state (`BUILDING`, `ERROR`, `INITIALIZING`, `QUEUED`, `READY`, `CANCELED`)' + in: query + schema: + description: 'Filter deployments based on their state (`BUILDING`, `ERROR`, `INITIALIZING`, `QUEUED`, `READY`, `CANCELED`)' + type: string + example: 'BUILDING,READY' + - name: rollbackCandidate + description: Filter deployments based on their rollback candidacy + in: query + schema: + description: Filter deployments based on their rollback candidacy + type: boolean + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v13/deployments/{id}': + delete: + description: 'This API allows you to delete a deployment, either by supplying its `id` in the URL or the `url` of the deployment as a query parameter. You can obtain the ID, for example, by listing all deployments.' + operationId: deleteDeployment + security: + - bearerToken: [] + summary: Delete a Deployment + tags: + - deployments + responses: + '200': + description: The deployment was successfully deleted + content: + application/json: + schema: + properties: + uid: + type: string + description: The removed deployment ID. + example: dpl_5WJWYSyB7BpgTj3EuwF37WMRBXBtPQ2iTMJHJBJyRfd + state: + type: string + enum: + - DELETED + description: A constant with the final state of the deployment. + required: + - uid + - state + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The deployment was not found + parameters: + - name: id + description: The ID of the deployment to be deleted + in: path + required: true + schema: + description: The ID of the deployment to be deleted + example: dpl_5WJWYSyB7BpgTj3EuwF37WMRBXBtPQ2iTMJHJBJyRfd + type: string + - name: url + description: 'A Deployment or Alias URL. In case it is passed, the ID will be ignored' + in: query + required: false + schema: + description: 'A Deployment or Alias URL. In case it is passed, the ID will be ignored' + example: 'https://files-orcin-xi.vercel.app/' + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/dns.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/dns.yaml new file mode 100644 index 0000000..a214593 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/dns.yaml @@ -0,0 +1,884 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - dns + description: dns +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + domains_records: + id: vercel.dns.domains_records + name: domains_records + title: Domains Records + methods: + get_records: + operation: + $ref: '#/paths/~1v4~1domains~1{domain}~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $._records + _get_records: + operation: + $ref: '#/paths/~1v4~1domains~1{domain}~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_record: + operation: + $ref: '#/paths/~1v2~1domains~1{domain}~1records/post' + response: + mediaType: application/json + openAPIDocKey: '200' + update_record: + operation: + $ref: '#/paths/~1v1~1domains~1records~1{recordId}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + remove_record: + operation: + $ref: '#/paths/~1v2~1domains~1{domain}~1records~1{recordId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domains_records/methods/get_records' + insert: + - $ref: '#/components/x-stackQL-resources/domains_records/methods/create_record' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/domains_records/methods/remove_record' +paths: + '/v4/domains/{domain}/records': + get: + description: Retrieves a list of DNS records created for a domain name. By default it returns 20 records if no limit is provided. The rest can be retrieved using the pagination options. + operationId: getRecords + security: + - bearerToken: [] + summary: List existing DNS records + tags: + - dns + responses: + '200': + description: Successful response retrieving a list of paginated DNS records. + content: + application/json: + schema: + oneOf: + - type: string + - properties: + records: + items: + properties: + id: + type: string + slug: + type: string + name: + type: string + type: + type: string + enum: + - A + - AAAA + - ALIAS + - CAA + - CNAME + - MX + - SRV + - TXT + - NS + value: + type: string + mxPriority: + type: number + priority: + type: number + creator: + type: string + created: + nullable: true + type: number + updated: + nullable: true + type: number + createdAt: + nullable: true + type: number + updatedAt: + nullable: true + type: number + required: + - id + - slug + - name + - type + - value + - creator + - created + - updated + - createdAt + - updatedAt + type: object + type: array + required: + - records + type: object + - properties: + records: + items: + properties: + id: + type: string + slug: + type: string + name: + type: string + type: + type: string + enum: + - A + - AAAA + - ALIAS + - CAA + - CNAME + - MX + - SRV + - TXT + - NS + value: + type: string + mxPriority: + type: number + priority: + type: number + creator: + type: string + created: + nullable: true + type: number + updated: + nullable: true + type: number + createdAt: + nullable: true + type: number + updatedAt: + nullable: true + type: number + required: + - id + - slug + - name + - type + - value + - creator + - created + - updated + - createdAt + - updatedAt + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - records + - pagination + type: object + description: Successful response retrieving a list of paginated DNS records. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: domain + in: path + required: true + schema: + type: string + example: example.com + - name: limit + description: Maximum number of records to list from a request. + in: query + required: false + schema: + description: Maximum number of records to list from a request. + type: string + example: 20 + - name: since + description: Get records created after this JavaScript timestamp. + in: query + required: false + schema: + description: Get records created after this JavaScript timestamp. + type: string + example: 1609499532000 + - name: until + description: Get records created before this JavaScript timestamp. + in: query + required: false + schema: + description: Get records created before this JavaScript timestamp. + type: string + example: 1612264332000 + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v2/domains/{domain}/records': + post: + description: Creates a DNS record for a domain. + operationId: createRecord + security: + - bearerToken: [] + summary: Create a DNS record + tags: + - dns + responses: + '200': + description: Successful response showing the uid of the newly created DNS record. + content: + application/json: + schema: + oneOf: + - properties: + uid: + type: string + updated: + type: number + required: + - uid + - updated + type: object + - properties: + uid: + type: string + description: The id of the newly created DNS record + example: rec_V0fra8eEgQwEpFhYG2vTzC3K + required: + - uid + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + parameters: + - name: domain + description: The domain used to create the DNS record. + in: path + required: true + schema: + description: The domain used to create the DNS record. + type: string + example: example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + required: + - type + properties: + type: + description: 'The type of record, it could be one of the valid DNS records.' + type: string + enum: + - A + - AAAA + - ALIAS + - CAA + - CNAME + - MX + - SRV + - TXT + - NS + anyOf: + - type: object + additionalProperties: false + required: + - type + - value + - name + properties: + name: + description: A subdomain name or an empty string for the root domain. + type: string + example: subdomain + type: + description: Must be of type `A`. + type: string + enum: + - A + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: The record value must be a valid IPv4 address. + type: string + format: ipv4 + example: 192.0.2.42 + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + - type: object + additionalProperties: false + required: + - type + - value + - name + properties: + name: + description: A subdomain name or an empty string for the root domain. + type: string + example: subdomain + type: + description: Must be of type `AAAA`. + type: string + enum: + - AAAA + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: An AAAA record pointing to an IPv6 address. + type: string + format: ipv6 + example: '2001:DB8::42' + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + - type: object + additionalProperties: false + required: + - type + - value + - name + properties: + name: + description: A subdomain name or an empty string for the root domain. + type: string + example: subdomain + type: + description: Must be of type `ALIAS`. + type: string + enum: + - ALIAS + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: An ALIAS virtual record pointing to a hostname resolved to an A record on server side. + type: string + example: cname.vercel-dns.com + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + - type: object + additionalProperties: false + required: + - type + - value + - name + properties: + name: + description: A subdomain name or an empty string for the root domain. + type: string + example: subdomain + type: + description: Must be of type `CAA`. + type: string + enum: + - CAA + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: A CAA record to specify which Certificate Authorities (CAs) are allowed to issue certificates for the domain. + type: string + example: 0 issue \"letsencrypt.org\" + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + - type: object + additionalProperties: false + required: + - type + - name + properties: + name: + description: A subdomain name or an empty string for the root domain. + type: string + example: subdomain + type: + description: Must be of type `CNAME`. + type: string + enum: + - CNAME + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: A CNAME record mapping to another domain name. + type: string + example: cname.vercel-dns.com + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + - type: object + additionalProperties: false + required: + - type + - value + - name + - mxPriority + properties: + name: + description: A subdomain name or an empty string for the root domain. + type: string + example: subdomain + type: + description: Must be of type `MX`. + type: string + enum: + - MX + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: An MX record specifying the mail server responsible for accepting messages on behalf of the domain name. + type: string + example: 10 mail.example.com. + mxPriority: + type: number + minimum: 0 + maximum: 65535 + example: 10 + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + - type: object + additionalProperties: false + required: + - type + - name + - srv + properties: + name: + description: A subdomain name or an empty string for the root domain. + type: string + name: subdomain + type: + description: Must be of type `SRV`. + type: string + enum: + - SRV + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + srv: + type: object + additionalProperties: false + required: + - weight + - port + - priority + properties: + priority: + anyOf: + - type: number + minimum: 0 + maximum: 65535 + example: 10 + - type: 'null' + weight: + anyOf: + - type: number + minimum: 0 + maximum: 65535 + example: 10 + - type: 'null' + port: + anyOf: + - type: number + minimum: 0 + maximum: 65535 + example: 5000 + - type: 'null' + target: + type: string + example: host.example.com + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + - type: object + additionalProperties: false + required: + - type + - value + - name + properties: + name: + description: A subdomain name or an empty string for the root domain. + type: string + name: subdomain + type: + description: Must be of type `TXT`. + type: string + enum: + - TXT + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: A TXT record containing arbitrary text. + type: string + example: hello + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + - type: object + additionalProperties: false + required: + - type + - name + properties: + name: + description: A subdomain name. + type: string + example: subdomain + type: + description: Must be of type `NS`. + type: string + enum: + - NS + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: An NS domain value. + type: string + example: ns1.example.com + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + '/v1/domains/records/{recordId}': + patch: + description: Updates an existing DNS record for a domain name. + operationId: updateRecord + security: + - bearerToken: [] + summary: Update an existing DNS record + tags: + - dns + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + comment: + type: string + createdAt: + nullable: true + type: number + creator: + type: string + domain: + type: string + id: + type: string + name: + type: string + recordType: + type: string + enum: + - A + - AAAA + - ALIAS + - CAA + - CNAME + - MX + - SRV + - TXT + - NS + ttl: + type: number + type: + type: string + enum: + - record + - record-sys + value: + type: string + required: + - creator + - domain + - id + - name + - recordType + - type + - value + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + parameters: + - name: recordId + description: The id of the DNS record + in: path + required: true + schema: + description: The id of the DNS record + example: rec_2qn7pzrx89yxy34vezpd31y9 + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + name: + type: string + description: The name of the DNS record + example: example-1 + nullable: true + value: + type: string + description: The value of the DNS record + example: google.com + nullable: true + type: + enum: + - A + - AAAA + - ALIAS + - CAA + - CNAME + - MX + - SRV + - TXT + - NS + type: string + description: The type of the DNS record + example: A + maxLength: 255 + nullable: true + ttl: + type: integer + description: The Time to live (TTL) value of the DNS record + example: '60' + minimum: 60 + maximum: 2147483647 + nullable: true + mxPriority: + type: integer + description: The MX priority value of the DNS record + nullable: true + srv: + additionalProperties: false + required: + - target + - weight + - port + - priority + properties: + target: + type: string + description: '' + example: example2.com. + maxLength: 255 + nullable: true + weight: + description: '' + type: integer + nullable: true + port: + description: '' + type: integer + nullable: true + priority: + description: '' + type: integer + nullable: true + type: object + nullable: true + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + type: object + '/v2/domains/{domain}/records/{recordId}': + delete: + description: Removes an existing DNS record from a domain name. + operationId: removeRecord + security: + - bearerToken: [] + summary: Delete a DNS record + tags: + - dns + responses: + '200': + description: Successful response by removing the specified DNS record. + content: + application/json: + schema: + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: domain + in: path + required: true + schema: + type: string + example: example.com + - name: recordId + in: path + required: true + schema: + type: string + example: rec_V0fra8eEgQwEpFhYG2vTzC3K + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/domains.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/domains.yaml new file mode 100644 index 0000000..85273b2 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/domains.yaml @@ -0,0 +1,1224 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - domains + description: domains +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + domains: + id: vercel.domains.domains + name: domains + title: Domains + methods: + buy_domain: + operation: + $ref: '#/paths/~1v4~1domains~1buy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get_domain: + operation: + $ref: '#/paths/~1v5~1domains~1{domain}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.domain + _get_domain: + operation: + $ref: '#/paths/~1v5~1domains~1{domain}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_domains: + operation: + $ref: '#/paths/~1v5~1domains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.domains + _get_domains: + operation: + $ref: '#/paths/~1v5~1domains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_or_transfer_domain: + operation: + $ref: '#/paths/~1v5~1domains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + patch_domain: + operation: + $ref: '#/paths/~1v3~1domains~1{domain}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_domain: + operation: + $ref: '#/paths/~1v6~1domains~1{domain}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domains/methods/get_domain' + - $ref: '#/components/x-stackQL-resources/domains/methods/get_domains' + insert: + - $ref: '#/components/x-stackQL-resources/domains/methods/create_or_transfer_domain' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/domains/methods/delete_domain' + price: + id: vercel.domains.price + name: price + title: Price + methods: + check_domain_price: + operation: + $ref: '#/paths/~1v4~1domains~1price/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/price/methods/check_domain_price' + insert: [] + update: [] + delete: [] + status: + id: vercel.domains.status + name: status + title: Status + methods: + check_domain_status: + operation: + $ref: '#/paths/~1v4~1domains~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/status/methods/check_domain_status' + insert: [] + update: [] + delete: [] + domain_registry: + id: vercel.domains.domain_registry + name: domain_registry + title: Domain Registry + methods: + get_domain_transfer: + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1registry/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_registry/methods/get_domain_transfer' + insert: [] + update: [] + delete: [] + config: + id: vercel.domains.config + name: config + title: Config + methods: + get_domain_config: + operation: + $ref: '#/paths/~1v6~1domains~1{domain}~1config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/config/methods/get_domain_config' + insert: [] + update: [] + delete: [] +paths: + /v4/domains/buy: + post: + description: Allows to purchase the specified domain. + operationId: buyDomain + security: + - bearerToken: [] + summary: Purchase a domain + tags: + - domains + responses: + '201': + description: Successful response for purchasing a Domain. + content: + application/json: + schema: + properties: + domain: + properties: + uid: + type: string + ns: + items: + type: string + type: array + verified: + type: boolean + created: + type: number + pending: + type: boolean + required: + - uid + - ns + - verified + - created + - pending + type: object + required: + - domain + type: object + '202': + description: Domain purchase is being processed asynchronously. + content: + application/json: + schema: + properties: + domain: + properties: + uid: + type: string + ns: + items: + type: string + type: array + verified: + type: boolean + created: + type: number + pending: + type: boolean + required: + - uid + - ns + - verified + - created + - pending + type: object + required: + - domain + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '429': + description: '' + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + required: + - name + properties: + name: + description: The domain name to purchase. + type: string + example: example.com + expectedPrice: + description: The price you expect to be charged for the purchase. + type: number + example: 10 + renew: + description: Indicates whether the domain should be automatically renewed. + type: boolean + example: true + /v4/domains/price: + get: + description: Check the price to purchase a domain and how long a single purchase period is. + operationId: checkDomainPrice + security: + - bearerToken: [] + summary: Check the price for a domain + tags: + - domains + responses: + '200': + description: Successful response which returns the price of the domain and the period. + content: + application/json: + schema: + properties: + price: + type: number + description: The domain price in USD. + example: 20 + period: + type: number + description: The number of years the domain could be held before paying again. + example: 1 + required: + - price + - period + type: object + description: Successful response which returns the price of the domain and the period. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: name + description: The name of the domain for which the price needs to be checked. + in: query + required: true + schema: + description: The name of the domain for which the price needs to be checked. + type: string + example: example.com + - name: type + description: In which status of the domain the price needs to be checked. + in: query + required: false + schema: + description: In which status of the domain the price needs to be checked. + type: string + enum: + - new + - renewal + example: new + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v4/domains/status: + get: + description: Check if a domain name is available for purchase. + operationId: checkDomainStatus + security: + - bearerToken: [] + summary: Check a Domain Availability + tags: + - domains + responses: + '200': + description: Successful response checking if a Domain's name is available. + content: + application/json: + schema: + properties: + available: + type: boolean + required: + - available + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: name + description: The name of the domain for which we would like to check the status. + in: query + required: true + schema: + description: The name of the domain for which we would like to check the status. + type: string + example: example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/domains/{domain}/registry': + get: + description: Fetch domain transfer availability or transfer status if a transfer is in progress. + operationId: getDomainTransfer + security: + - bearerToken: [] + summary: Get domain transfer info. + tags: + - domains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + transferable: + type: boolean + description: Whether or not the domain is transferable + transferPolicy: + nullable: true + type: string + enum: + - charge-and-renew + - no-charge-no-change + - no-change + - new-term + - not-supported + description: 'The domain''s transfer policy (depends on TLD requirements). `charge-and-renew`: transfer will charge for renewal and will renew the existing domain''s registration. `no-charge-no-change`: transfer will have no change to registration period and does not require charge. `no-change`: transfer charge is required, but no change in registration period. `new-term`: transfer charge is required and a new registry term is set based on the transfer date. `not-supported`: transfers are not supported for this domain or TLD. `null`: This TLD is not supported by Vercel''s Registrar.' + reason: + type: string + description: Description associated with transferable state. + status: + type: string + enum: + - pending_owner + - pending_admin + - pending_registry + - completed + - cancelled + - undef + - unknown + description: 'The current state of an ongoing transfer. `pending_owner`: Awaiting approval by domain''s admin contact (every transfer begins with this status). If approval is not given within five days, the transfer is cancelled. `pending_admin`: Waiting for approval by Vercel Registrar admin. `pending_registry`: Awaiting registry approval (the transfer completes after 7 days unless it is declined by the current registrar). `completed`: The transfer completed successfully. `cancelled`: The transfer was cancelled. `undef`: No transfer exists for this domain. `unknown`: This TLD is not supported by Vercel''s Registrar.' + required: + - transferable + - transferPolicy + - reason + - status + type: object + '400': + description: '' + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: domain + description: The name of the domain. + in: path + required: true + schema: + type: string + description: The name of the domain. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v6/domains/{domain}/config': + get: + description: Get a Domain's configuration. + operationId: getDomainConfig + security: + - bearerToken: [] + summary: Get a Domain's configuration + tags: + - domains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + configuredBy: + nullable: true + type: string + enum: + - CNAME + - A + - http + description: 'How we see the domain''s configuration. - `CNAME`: Domain has a CNAME pointing to Vercel. - `A`: Domain''s A record is resolving to Vercel. - `http`: Domain is resolving to Vercel but may be behind a Proxy. - `null`: Domain is not resolving to Vercel.' + acceptedChallenges: + items: + type: string + enum: + - dns-01 + - http-01 + description: Which challenge types the domain can use for issuing certs. + type: array + description: Which challenge types the domain can use for issuing certs. + misconfigured: + type: boolean + description: Whether or not the domain is configured AND we can automatically generate a TLS certificate. + required: + - misconfigured + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: domain + description: The name of the domain. + in: path + required: true + schema: + description: The name of the domain. + type: string + example: example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v5/domains/{domain}': + get: + description: Get information for a single domain in an account or team. + operationId: getDomain + security: + - bearerToken: [] + summary: Get Information for a Single Domain + tags: + - domains + responses: + '200': + description: Successful response retrieving an information for a specific domains. + content: + application/json: + schema: + properties: + domain: + properties: + suffix: + type: boolean + verified: + type: boolean + description: If the domain has the ownership verified. + example: true + nameservers: + items: + type: string + type: array + description: A list of the current nameservers of the domain. + example: + - ns1.nameserver.net + - ns2.nameserver.net + intendedNameservers: + items: + type: string + type: array + description: A list of the intended nameservers for the domain to point to Vercel DNS. + example: + - ns1.vercel-dns.com + - ns2.vercel-dns.com + customNameservers: + items: + type: string + type: array + description: A list of custom nameservers for the domain to point to. Only applies to domains purchased with Vercel. + example: + - ns1.nameserver.net + - ns2.nameserver.net + creator: + properties: + username: + type: string + email: + type: string + customerId: + nullable: true + type: string + isDomainReseller: + type: boolean + id: + type: string + required: + - username + - email + - id + type: object + description: 'An object containing information of the domain creator, including the user''s id, username, and email.' + example: + id: ZspSRT4ljIEEmMHgoDwKWDei + username: vercel_user + email: demo@example.com + boughtAt: + nullable: true + type: number + description: 'If it was purchased through Vercel, the timestamp in milliseconds when it was purchased.' + example: 1613602938882 + createdAt: + type: number + description: Timestamp in milliseconds when the domain was created in the registry. + example: 1613602938882 + expiresAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel. + example: 1613602938882 + id: + type: string + description: The unique identifier of the domain. + example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1 + name: + type: string + description: The domain name. + example: example.com + orderedAt: + type: number + description: Timestamp in milliseconds at which the domain was ordered. + example: 1613602938882 + renew: + type: boolean + description: Indicates whether the domain is set to automatically renew. + example: true + serviceType: + type: string + enum: + - zeit.world + - external + - na + description: 'The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.' + example: zeit.world + transferredAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain was successfully transferred into Vercel. `null` if the transfer is still processing or was never transferred in. + example: 1613602938882 + transferStartedAt: + type: number + description: 'If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.' + example: 1613602938882 + required: + - suffix + - verified + - nameservers + - intendedNameservers + - creator + - boughtAt + - createdAt + - expiresAt + - id + - name + - serviceType + type: object + required: + - domain + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: domain + description: The name of the domain. + in: path + required: true + schema: + description: The name of the domain. + type: string + example: example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v5/domains: + get: + description: Retrieves a list of domains registered for the authenticated user or team. By default it returns the last 20 domains if no limit is provided. + operationId: getDomains + security: + - bearerToken: [] + summary: List all the domains + tags: + - domains + responses: + '200': + description: Successful response retrieving a list of domains. + content: + application/json: + schema: + properties: + domains: + items: + properties: + verified: + type: boolean + description: If the domain has the ownership verified. + example: true + nameservers: + items: + type: string + type: array + description: A list of the current nameservers of the domain. + example: + - ns1.nameserver.net + - ns2.nameserver.net + intendedNameservers: + items: + type: string + type: array + description: A list of the intended nameservers for the domain to point to Vercel DNS. + example: + - ns1.vercel-dns.com + - ns2.vercel-dns.com + customNameservers: + items: + type: string + type: array + description: A list of custom nameservers for the domain to point to. Only applies to domains purchased with Vercel. + example: + - ns1.nameserver.net + - ns2.nameserver.net + creator: + properties: + username: + type: string + email: + type: string + customerId: + nullable: true + type: string + isDomainReseller: + type: boolean + id: + type: string + required: + - username + - email + - id + type: object + description: 'An object containing information of the domain creator, including the user''s id, username, and email.' + example: + id: ZspSRT4ljIEEmMHgoDwKWDei + username: vercel_user + email: demo@example.com + renew: + type: boolean + description: Indicates whether the domain is set to automatically renew. + example: true + boughtAt: + nullable: true + type: number + description: 'If it was purchased through Vercel, the timestamp in milliseconds when it was purchased.' + example: 1613602938882 + createdAt: + type: number + description: Timestamp in milliseconds when the domain was created in the registry. + example: 1613602938882 + expiresAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel. + example: 1613602938882 + id: + type: string + description: The unique identifier of the domain. + example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1 + name: + type: string + description: The domain name. + example: example.com + orderedAt: + type: number + description: Timestamp in milliseconds at which the domain was ordered. + example: 1613602938882 + serviceType: + type: string + enum: + - zeit.world + - external + - na + description: 'The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.' + example: zeit.world + transferredAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain was successfully transferred into Vercel. `null` if the transfer is still processing or was never transferred in. + example: 1613602938882 + transferStartedAt: + type: number + description: 'If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.' + example: 1613602938882 + required: + - verified + - nameservers + - intendedNameservers + - creator + - boughtAt + - createdAt + - expiresAt + - id + - name + - serviceType + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - domains + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '409': + description: '' + parameters: + - name: limit + description: Maximum number of domains to list from a request. + in: query + schema: + description: Maximum number of domains to list from a request. + type: number + example: 20 + - name: since + description: Get domains created after this JavaScript timestamp. + in: query + schema: + description: Get domains created after this JavaScript timestamp. + type: number + example: 1609499532000 + - name: until + description: Get domains created before this JavaScript timestamp. + in: query + schema: + description: Get domains created before this JavaScript timestamp. + type: number + example: 1612264332000 + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + post: + description: This endpoint is used for adding a new apex domain name with Vercel for the authenticating user. Can also be used for initiating a domain transfer request from an external Registrar to Vercel. + operationId: createOrTransferDomain + security: + - bearerToken: [] + summary: Register or transfer-in a new Domain + tags: + - domains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + domain: + properties: + verified: + type: boolean + description: If the domain has the ownership verified. + example: true + nameservers: + items: + type: string + type: array + description: A list of the current nameservers of the domain. + example: + - ns1.nameserver.net + - ns2.nameserver.net + intendedNameservers: + items: + type: string + type: array + description: A list of the intended nameservers for the domain to point to Vercel DNS. + example: + - ns1.vercel-dns.com + - ns2.vercel-dns.com + customNameservers: + items: + type: string + type: array + description: A list of custom nameservers for the domain to point to. Only applies to domains purchased with Vercel. + example: + - ns1.nameserver.net + - ns2.nameserver.net + creator: + properties: + username: + type: string + email: + type: string + customerId: + nullable: true + type: string + isDomainReseller: + type: boolean + id: + type: string + required: + - username + - email + - id + type: object + description: 'An object containing information of the domain creator, including the user''s id, username, and email.' + example: + id: ZspSRT4ljIEEmMHgoDwKWDei + username: vercel_user + email: demo@example.com + id: + type: string + description: The unique identifier of the domain. + example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1 + boughtAt: + nullable: true + type: number + description: 'If it was purchased through Vercel, the timestamp in milliseconds when it was purchased.' + example: 1613602938882 + createdAt: + type: number + description: Timestamp in milliseconds when the domain was created in the registry. + example: 1613602938882 + expiresAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel. + example: 1613602938882 + name: + type: string + description: The domain name. + example: example.com + orderedAt: + type: number + description: Timestamp in milliseconds at which the domain was ordered. + example: 1613602938882 + renew: + type: boolean + description: Indicates whether the domain is set to automatically renew. + example: true + serviceType: + type: string + enum: + - zeit.world + - external + - na + description: 'The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.' + example: zeit.world + transferredAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain was successfully transferred into Vercel. `null` if the transfer is still processing or was never transferred in. + example: 1613602938882 + transferStartedAt: + type: number + description: 'If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.' + example: 1613602938882 + required: + - verified + - nameservers + - intendedNameservers + - creator + - id + - boughtAt + - createdAt + - expiresAt + - name + - serviceType + type: object + required: + - domain + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + method: + description: The domain operation to perform. It can be either `add` or `transfer-in`. + type: string + example: transfer-in + oneOf: + - additionalProperties: false + type: object + description: add + required: + - name + properties: + name: + description: The domain name you want to add. + type: string + example: example.com + cdnEnabled: + description: Whether the domain has the Vercel Edge Network enabled or not. + type: boolean + example: true + zone: + type: boolean + method: + description: The domain operation to perform. + type: string + example: add + - additionalProperties: false + type: object + description: move-in + required: + - method + - name + properties: + name: + description: The domain name you want to add. + type: string + example: example.com + method: + description: The domain operation to perform. + type: string + example: move-in + token: + description: The move-in token from Move Requested email. + type: string + example: fdhfr820ad#@FAdlj$$ + - additionalProperties: false + type: object + description: transfer-in + required: + - method + - name + properties: + name: + description: The domain name you want to add. + type: string + example: example.com + method: + description: The domain operation to perform. + type: string + example: transfer-in + authCode: + description: The authorization code assigned to the domain. + type: string + example: fdhfr820ad#@FAdlj$$ + expectedPrice: + description: The price you expect to be charged for the required 1 year renewal. + type: number + example: 8 + '/v3/domains/{domain}': + patch: + description: Update or move apex domain. + operationId: patchDomain + security: + - bearerToken: [] + summary: Update or move apex domain + tags: + - domains + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - properties: + moved: + type: boolean + required: + - moved + type: object + - properties: + moved: + type: boolean + token: + type: string + required: + - moved + - token + type: object + - properties: + renew: + type: boolean + customNameservers: + items: + type: string + type: array + zone: + type: boolean + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + parameters: + - name: domain + description: The name of the domain. + in: path + required: true + schema: + type: string + description: The name of the domain. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + description: update + additionalProperties: false + properties: + op: + example: update + type: string + renew: + description: Specifies whether domain should be renewed. + type: boolean + customNameservers: + description: The custom nameservers for this project. + items: + type: string + maxItems: 4 + minItems: 0 + type: array + uniqueItems: true + zone: + description: Specifies whether this is a DNS zone that intends to use Vercel's nameservers. + type: boolean + - type: object + description: move-out + additionalProperties: false + properties: + op: + example: move-out + type: string + destination: + description: User or team to move domain to + type: string + '/v6/domains/{domain}': + delete: + description: Delete a previously registered domain name from Vercel. Deleting a domain will automatically remove any associated aliases. + operationId: deleteDomain + security: + - bearerToken: [] + summary: Remove a domain by name + tags: + - domains + responses: + '200': + description: Successful response removing a domain. + content: + application/json: + schema: + properties: + uid: + type: string + required: + - uid + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + parameters: + - name: domain + description: The name of the domain. + in: path + required: true + schema: + description: The name of the domain. + type: string + example: example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/edge_config.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/edge_config.yaml new file mode 100644 index 0000000..247b785 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/edge_config.yaml @@ -0,0 +1,968 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - edge_config + description: edge-config +components: + schemas: + EdgeConfigItem: + properties: + key: + type: string + value: + $ref: '#/components/schemas/EdgeConfigItemValue' + edgeConfigId: + type: string + createdAt: + type: number + updatedAt: + type: number + required: + - key + - value + - edgeConfigId + - createdAt + - updatedAt + type: object + description: The EdgeConfig. + EdgeConfigItemValue: + nullable: true + oneOf: + - type: string + - type: number + - type: boolean + - additionalProperties: + $ref: '#/components/schemas/EdgeConfigItemValue' + type: object + - items: + $ref: '#/components/schemas/EdgeConfigItemValue' + type: array + EdgeConfigToken: + properties: + token: + type: string + label: + type: string + id: + type: string + description: 'This is not the token itself, but rather an id to identify the token by' + edgeConfigId: + type: string + createdAt: + type: number + required: + - token + - label + - id + - edgeConfigId + - createdAt + type: object + description: The EdgeConfig. + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + edge_config: + id: vercel.edge_config.edge_config + name: edge_config + title: Edge Config + methods: + get_edge_configs: + operation: + $ref: '#/paths/~1v1~1edge-config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_edge_config: + operation: + $ref: '#/paths/~1v1~1edge-config/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get_edge_config: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_edge_config: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_edge_config: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/edge_config/methods/get_edge_config' + - $ref: '#/components/x-stackQL-resources/edge_config/methods/get_edge_configs' + insert: + - $ref: '#/components/x-stackQL-resources/edge_config/methods/create_edge_config' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/edge_config/methods/delete_edge_config' + items: + id: vercel.edge_config.items + name: items + title: Items + methods: + get_edge_config_items: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1items/get' + response: + mediaType: application/json + openAPIDocKey: '200' + patcht_edge_config_items: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1items/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/items/methods/get_edge_config_items' + insert: [] + update: [] + delete: [] + item: + id: vercel.edge_config.item + name: item + title: Item + methods: + get_edge_config_item: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1item~1{edgeConfigItemKey}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/item/methods/get_edge_config_item' + insert: [] + update: [] + delete: [] + tokens: + id: vercel.edge_config.tokens + name: tokens + title: Tokens + methods: + get_edge_config_tokens: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1tokens/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_edge_config_tokens: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1tokens/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tokens/methods/get_edge_config_tokens' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/tokens/methods/delete_edge_config_tokens' + token: + id: vercel.edge_config.token + name: token + title: Token + methods: + get_edge_config_token: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1token~1{token}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_edge_config_token: + operation: + $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1token/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/token/methods/get_edge_config_token' + insert: + - $ref: '#/components/x-stackQL-resources/token/methods/create_edge_config_token' + update: [] + delete: [] +paths: + /v1/edge-config: + get: + description: Returns all Edge Configs. + operationId: getEdgeConfigs + security: + - bearerToken: [] + summary: Get Edge Configs + tags: + - edge-config + responses: + '200': + description: List of all edge configs. + content: + application/json: + schema: + properties: + id: + type: string + createdAt: + type: number + ownerId: + type: string + slug: + type: string + description: Name for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + updatedAt: + type: number + digest: + type: string + transfer: + properties: + fromAccountId: + type: string + startedAt: + type: number + doneAt: + nullable: true + type: number + required: + - fromAccountId + - startedAt + - doneAt + type: object + description: Keeps track of the current state of the Edge Config while it gets transferred. + sizeInBytes: + type: number + itemCount: + type: number + required: + - sizeInBytes + - itemCount + type: object + description: List of all edge configs. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + post: + description: Creates an Edge Config. + operationId: createEdgeConfig + security: + - bearerToken: [] + summary: Create an Edge Config + tags: + - edge-config + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + createdAt: + type: number + updatedAt: + type: number + id: + type: string + slug: + type: string + description: Name for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + ownerId: + type: string + digest: + type: string + transfer: + properties: + fromAccountId: + type: string + startedAt: + type: number + doneAt: + nullable: true + type: number + required: + - fromAccountId + - startedAt + - doneAt + type: object + description: Keeps track of the current state of the Edge Config while it gets transferred. + sizeInBytes: + type: number + itemCount: + type: number + required: + - sizeInBytes + - itemCount + type: object + description: An Edge Config + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - slug + properties: + slug: + maxLength: 32 + pattern: '^[\\w-]+$' + type: string + items: + type: object + propertyNames: + maxLength: 256 + pattern: '^[\\w-]+$' + type: string + additionalProperties: + oneOf: + - oneOf: + - type: string + - type: number + - type: boolean + - type: 'null' + - type: object + - type: array + items: + oneOf: + - type: string + - type: number + - type: boolean + - type: 'null' + - type: object + '/v1/edge-config/{edgeConfigId}': + get: + description: Returns an Edge Config. + operationId: getEdgeConfig + security: + - bearerToken: [] + summary: Get an Edge Config + tags: + - edge-config + responses: + '200': + description: The EdgeConfig. + content: + application/json: + schema: + properties: + createdAt: + type: number + updatedAt: + type: number + id: + type: string + slug: + type: string + description: Name for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + ownerId: + type: string + digest: + type: string + transfer: + properties: + fromAccountId: + type: string + startedAt: + type: number + doneAt: + nullable: true + type: number + required: + - fromAccountId + - startedAt + - doneAt + type: object + description: Keeps track of the current state of the Edge Config while it gets transferred. + sizeInBytes: + type: number + itemCount: + type: number + required: + - sizeInBytes + - itemCount + type: object + description: The EdgeConfig. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + put: + description: Updates an Edge Config. + operationId: updateEdgeConfig + security: + - bearerToken: [] + summary: Update an Edge Config + tags: + - edge-config + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + createdAt: + type: number + updatedAt: + type: number + id: + type: string + slug: + type: string + description: Name for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + ownerId: + type: string + digest: + type: string + transfer: + properties: + fromAccountId: + type: string + startedAt: + type: number + doneAt: + nullable: true + type: number + required: + - fromAccountId + - startedAt + - doneAt + type: object + description: Keeps track of the current state of the Edge Config while it gets transferred. + sizeInBytes: + type: number + itemCount: + type: number + required: + - sizeInBytes + - itemCount + type: object + description: An Edge Config + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - slug + properties: + slug: + maxLength: 32 + pattern: '^[\\w-]+$' + type: string + delete: + description: Delete an Edge Config by id. + operationId: deleteEdgeConfig + security: + - bearerToken: [] + summary: Delete an Edge Config + tags: + - edge-config + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/edge-config/{edgeConfigId}/items': + get: + description: Returns all items of an Edge Config. + operationId: getEdgeConfigItems + security: + - bearerToken: [] + summary: Get Edge Config items + tags: + - edge-config + responses: + '200': + description: The EdgeConfig. + content: + application/json: + schema: + $ref: '#/components/schemas/EdgeConfigItem' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + patch: + description: Update multiple Edge Config Items in batch. + operationId: patchtEdgeConfigItems + security: + - bearerToken: [] + summary: Update Edge Config items in batch + tags: + - edge-config + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + status: + type: string + required: + - status + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - items + properties: + items: + type: array + items: + oneOf: + - type: object + required: + - operation + - key + - value + properties: + operation: + oneOf: + - const: create + - const: update + - const: upsert + key: + maxLength: 256 + pattern: '^[\\w-]+$' + type: string + value: + oneOf: + - oneOf: + - type: string + - type: number + - type: boolean + - type: 'null' + - type: object + - type: array + items: + oneOf: + - type: string + - type: number + - type: boolean + - type: 'null' + - type: object + - type: object + required: + - operation + - key + properties: + operation: + const: delete + key: + maxLength: 256 + pattern: '^[\\w-]+$' + type: string + '/v1/edge-config/{edgeConfigId}/item/{edgeConfigItemKey}': + get: + description: Returns a specific Edge Config Item. + operationId: getEdgeConfigItem + security: + - bearerToken: [] + summary: Get an Edge Config item + tags: + - edge-config + responses: + '200': + description: The EdgeConfig. + content: + application/json: + schema: + $ref: '#/components/schemas/EdgeConfigItem' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - name: edgeConfigItemKey + description: Edge config id item key. + in: path + required: true + schema: + type: string + description: Edge config id item key. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/edge-config/{edgeConfigId}/tokens': + get: + description: Returns all tokens of an Edge Config. + operationId: getEdgeConfigTokens + security: + - bearerToken: [] + summary: Get all tokens of an Edge Config + tags: + - edge-config + responses: + '200': + description: The EdgeConfig. + content: + application/json: + schema: + $ref: '#/components/schemas/EdgeConfigToken' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + delete: + description: Deletes one or more tokens of an existing Edge Config. + operationId: deleteEdgeConfigTokens + security: + - bearerToken: [] + summary: Delete one or more Edge Config tokens + tags: + - edge-config + responses: + '204': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - tokens + properties: + tokens: + type: array + items: + type: string + '/v1/edge-config/{edgeConfigId}/token/{token}': + get: + description: Return meta data about an Edge Config token. + operationId: getEdgeConfigToken + security: + - bearerToken: [] + summary: Get Edge Config token meta data + tags: + - edge-config + responses: + '200': + description: The EdgeConfig. + content: + application/json: + schema: + $ref: '#/components/schemas/EdgeConfigToken' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - name: token + in: path + required: true + schema: + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/edge-config/{edgeConfigId}/token': + post: + description: Adds a token to an existing Edge Config. + operationId: createEdgeConfigToken + security: + - bearerToken: [] + summary: Create an Edge Config token + tags: + - edge-config + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + token: + type: string + id: + type: string + required: + - token + - id + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: edgeConfigId + description: Edge config id. + in: path + required: true + schema: + type: string + description: Edge config id. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - label + properties: + label: + maxLength: 52 + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/integrations.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/integrations.yaml new file mode 100644 index 0000000..0147015 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/integrations.yaml @@ -0,0 +1,1109 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - integrations + description: integrations +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + configuration: + id: vercel.integrations.configuration + name: configuration + title: Configuration + methods: + get_configurations: + operation: + $ref: '#/paths/~1v1~1integrations~1configurations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_configuration: + operation: + $ref: '#/paths/~1v1~1integrations~1configuration~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_configuration: + operation: + $ref: '#/paths/~1v1~1integrations~1configuration~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/configuration/methods/get_configuration' + - $ref: '#/components/x-stackQL-resources/configuration/methods/get_configurations' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/configuration/methods/delete_configuration' + git_namespaces: + id: vercel.integrations.git_namespaces + name: git_namespaces + title: Git Namespaces + methods: + git_namespaces: + operation: + $ref: '#/paths/~1v1~1integrations~1git-namespaces/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/git_namespaces/methods/git_namespaces' + insert: [] + update: [] + delete: [] + search_repo: + id: vercel.integrations.search_repo + name: search_repo + title: Search Repo + methods: + git_namespaces: + operation: + $ref: '#/paths/~1v1~1integrations~1search-repo/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/search_repo/methods/git_namespaces' + insert: [] + update: [] + delete: [] +paths: + /v1/integrations/configurations: + get: + description: 'Allows to retrieve all configurations for an authenticated integration. When the `project` view is used, configurations generated for the authorization flow will be filtered out of the results.' + operationId: getConfigurations + security: + - bearerToken: [] + summary: Get configurations for the authenticated user or team + tags: + - integrations + responses: + '200': + description: The list of configurations for the authenticated user + content: + application/json: + schema: + oneOf: + - items: + properties: + completedAt: + type: number + description: A timestamp that tells you when the configuration was installed successfully + example: 1558531915505 + createdAt: + type: number + description: A timestamp that tells you when the configuration was created + example: 1558531915505 + id: + type: string + description: The unique identifier of the configuration + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + integrationId: + type: string + description: The unique identifier of the app the configuration was created for + example: oac_xzpVzcUOgcB1nrVlirtKhbWV + ownerId: + type: string + description: The user or team ID that owns the configuration + example: kr1PsOIzqEL5Xg6M4VZcZosf + projects: + items: + type: string + type: array + description: 'When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.' + example: + - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO + source: + type: string + enum: + - marketplace + - deploy-button + - external + description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. + example: marketplace + removedLogDrainsAt: + type: number + removedProjectEnvsAt: + type: number + removedTokensAt: + type: number + removedWebhooksAt: + type: number + slug: + type: string + description: The slug of the integration the configuration is created for. + example: slack + teamId: + nullable: true + type: string + description: 'When the configuration was created for a team, this will show the ID of the team.' + example: team_nLlpyC6RE1qxydlFKbrxDlud + type: + type: string + enum: + - integration-configuration + updatedAt: + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + userId: + type: string + description: The ID of the user that created the configuration. + example: kr1PsOIzqEL5Xg6M4VZcZosf + scopes: + items: + type: string + type: array + description: The resources that are allowed to be accessed by the configuration. + example: + - 'read:project' + - 'read-write:log-drain' + scopesQueue: + items: + properties: + scopes: + properties: + added: + items: + type: string + enum: + - 'read:integration-configuration' + - 'read-write:integration-configuration' + - 'read:deployment' + - 'read-write:deployment' + - 'read-write:deployment-check' + - 'read:project' + - 'read-write:project' + - 'read-write:project-env-vars' + - 'read-write:global-project-env-vars' + - 'read:team' + - 'read:user' + - 'read-write:log-drain' + - 'read:domain' + - 'read-write:domain' + - 'read-write:edge-config' + - 'read-write:otel-endpoint' + - 'read:monitoring' + type: array + upgraded: + items: + type: string + enum: + - 'read:integration-configuration' + - 'read-write:integration-configuration' + - 'read:deployment' + - 'read-write:deployment' + - 'read-write:deployment-check' + - 'read:project' + - 'read-write:project' + - 'read-write:project-env-vars' + - 'read-write:global-project-env-vars' + - 'read:team' + - 'read:user' + - 'read-write:log-drain' + - 'read:domain' + - 'read-write:domain' + - 'read-write:edge-config' + - 'read-write:otel-endpoint' + - 'read:monitoring' + type: array + required: + - added + - upgraded + type: object + note: + type: string + requestedAt: + type: number + confirmedAt: + type: number + required: + - scopes + - note + - requestedAt + type: object + type: array + disabledAt: + type: number + description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' + example: 1558531915505 + deletedAt: + nullable: true + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + disabledReason: + type: string + enum: + - log-drain-high-error-rate + - log-drains-add-on-disabled-by-owner + - account-plan-downgrade + - disabled-by-admin + - original-owner-left-the-team + required: + - createdAt + - id + - integrationId + - ownerId + - slug + - type + - updatedAt + - userId + - scopes + type: object + type: array + - items: + properties: + integration: + properties: + name: + type: string + icon: + type: string + category: + type: string + isLegacy: + type: boolean + flags: + items: + type: string + type: array + assignedBetaLabelAt: + type: number + required: + - name + - icon + - category + - isLegacy + type: object + completedAt: + type: number + description: A timestamp that tells you when the configuration was installed successfully + example: 1558531915505 + createdAt: + type: number + description: A timestamp that tells you when the configuration was created + example: 1558531915505 + id: + type: string + description: The unique identifier of the configuration + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + integrationId: + type: string + description: The unique identifier of the app the configuration was created for + example: oac_xzpVzcUOgcB1nrVlirtKhbWV + ownerId: + type: string + description: The user or team ID that owns the configuration + example: kr1PsOIzqEL5Xg6M4VZcZosf + projects: + items: + type: string + type: array + description: 'When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.' + example: + - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO + source: + type: string + enum: + - marketplace + - deploy-button + - external + description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. + example: marketplace + removedLogDrainsAt: + type: number + removedProjectEnvsAt: + type: number + removedTokensAt: + type: number + removedWebhooksAt: + type: number + slug: + type: string + description: The slug of the integration the configuration is created for. + example: slack + teamId: + nullable: true + type: string + description: 'When the configuration was created for a team, this will show the ID of the team.' + example: team_nLlpyC6RE1qxydlFKbrxDlud + type: + type: string + enum: + - integration-configuration + updatedAt: + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + userId: + type: string + description: The ID of the user that created the configuration. + example: kr1PsOIzqEL5Xg6M4VZcZosf + scopes: + items: + type: string + type: array + description: The resources that are allowed to be accessed by the configuration. + example: + - 'read:project' + - 'read-write:log-drain' + scopesQueue: + items: + properties: + scopes: + properties: + added: + items: + type: string + enum: + - 'read:integration-configuration' + - 'read-write:integration-configuration' + - 'read:deployment' + - 'read-write:deployment' + - 'read-write:deployment-check' + - 'read:project' + - 'read-write:project' + - 'read-write:project-env-vars' + - 'read-write:global-project-env-vars' + - 'read:team' + - 'read:user' + - 'read-write:log-drain' + - 'read:domain' + - 'read-write:domain' + - 'read-write:edge-config' + - 'read-write:otel-endpoint' + - 'read:monitoring' + type: array + upgraded: + items: + type: string + enum: + - 'read:integration-configuration' + - 'read-write:integration-configuration' + - 'read:deployment' + - 'read-write:deployment' + - 'read-write:deployment-check' + - 'read:project' + - 'read-write:project' + - 'read-write:project-env-vars' + - 'read-write:global-project-env-vars' + - 'read:team' + - 'read:user' + - 'read-write:log-drain' + - 'read:domain' + - 'read-write:domain' + - 'read-write:edge-config' + - 'read-write:otel-endpoint' + - 'read:monitoring' + type: array + required: + - added + - upgraded + type: object + note: + type: string + requestedAt: + type: number + confirmedAt: + type: number + required: + - scopes + - note + - requestedAt + type: object + type: array + disabledAt: + type: number + description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' + example: 1558531915505 + deletedAt: + nullable: true + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + disabledReason: + type: string + enum: + - log-drain-high-error-rate + - log-drains-add-on-disabled-by-owner + - account-plan-downgrade + - disabled-by-admin + - original-owner-left-the-team + required: + - integration + - createdAt + - id + - integrationId + - ownerId + - slug + - type + - updatedAt + - userId + - scopes + type: object + type: array + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: view + in: query + required: true + schema: + type: string + enum: + - account + - project + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/integrations/configuration/{id}': + get: + description: Allows to retrieve a the configuration with the provided id in case it exists. The authenticated user or team must be the owner of the config in order to access it. + operationId: getConfiguration + security: + - bearerToken: [] + summary: Retrieve an integration configuration + tags: + - integrations + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - properties: + completedAt: + type: number + description: A timestamp that tells you when the configuration was installed successfully + example: 1558531915505 + createdAt: + type: number + description: A timestamp that tells you when the configuration was created + example: 1558531915505 + id: + type: string + description: The unique identifier of the configuration + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + integrationId: + type: string + description: The unique identifier of the app the configuration was created for + example: oac_xzpVzcUOgcB1nrVlirtKhbWV + ownerId: + type: string + description: The user or team ID that owns the configuration + example: kr1PsOIzqEL5Xg6M4VZcZosf + projects: + items: + type: string + type: array + description: 'When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.' + example: + - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO + source: + type: string + enum: + - marketplace + - deploy-button + - external + description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. + example: marketplace + removedLogDrainsAt: + type: number + removedProjectEnvsAt: + type: number + removedTokensAt: + type: number + removedWebhooksAt: + type: number + slug: + type: string + description: The slug of the integration the configuration is created for. + example: slack + teamId: + nullable: true + type: string + description: 'When the configuration was created for a team, this will show the ID of the team.' + example: team_nLlpyC6RE1qxydlFKbrxDlud + type: + type: string + enum: + - integration-configuration + updatedAt: + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + userId: + type: string + description: The ID of the user that created the configuration. + example: kr1PsOIzqEL5Xg6M4VZcZosf + scopes: + items: + type: string + type: array + description: The resources that are allowed to be accessed by the configuration. + example: + - 'read:project' + - 'read-write:log-drain' + scopesQueue: + items: + properties: + scopes: + properties: + added: + items: + type: string + enum: + - 'read:integration-configuration' + - 'read-write:integration-configuration' + - 'read:deployment' + - 'read-write:deployment' + - 'read-write:deployment-check' + - 'read:project' + - 'read-write:project' + - 'read-write:project-env-vars' + - 'read-write:global-project-env-vars' + - 'read:team' + - 'read:user' + - 'read-write:log-drain' + - 'read:domain' + - 'read-write:domain' + - 'read-write:edge-config' + - 'read-write:otel-endpoint' + - 'read:monitoring' + type: array + upgraded: + items: + type: string + enum: + - 'read:integration-configuration' + - 'read-write:integration-configuration' + - 'read:deployment' + - 'read-write:deployment' + - 'read-write:deployment-check' + - 'read:project' + - 'read-write:project' + - 'read-write:project-env-vars' + - 'read-write:global-project-env-vars' + - 'read:team' + - 'read:user' + - 'read-write:log-drain' + - 'read:domain' + - 'read-write:domain' + - 'read-write:edge-config' + - 'read-write:otel-endpoint' + - 'read:monitoring' + type: array + required: + - added + - upgraded + type: object + note: + type: string + requestedAt: + type: number + confirmedAt: + type: number + required: + - scopes + - note + - requestedAt + type: object + type: array + disabledAt: + type: number + description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' + example: 1558531915505 + deletedAt: + nullable: true + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + disabledReason: + type: string + enum: + - log-drain-high-error-rate + - log-drains-add-on-disabled-by-owner + - account-plan-downgrade + - disabled-by-admin + - original-owner-left-the-team + required: + - createdAt + - id + - integrationId + - ownerId + - slug + - type + - updatedAt + - userId + - scopes + type: object + - properties: + projectSelection: + type: string + enum: + - selected + - all + description: A string representing the permission for projects. Possible values are `all` or `selected`. + example: all + completedAt: + type: number + description: A timestamp that tells you when the configuration was installed successfully + example: 1558531915505 + createdAt: + type: number + description: A timestamp that tells you when the configuration was created + example: 1558531915505 + id: + type: string + description: The unique identifier of the configuration + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + integrationId: + type: string + description: The unique identifier of the app the configuration was created for + example: oac_xzpVzcUOgcB1nrVlirtKhbWV + ownerId: + type: string + description: The user or team ID that owns the configuration + example: kr1PsOIzqEL5Xg6M4VZcZosf + projects: + items: + type: string + type: array + description: 'When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.' + example: + - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO + source: + type: string + enum: + - marketplace + - deploy-button + - external + description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. + example: marketplace + removedLogDrainsAt: + type: number + removedProjectEnvsAt: + type: number + removedTokensAt: + type: number + removedWebhooksAt: + type: number + slug: + type: string + description: The slug of the integration the configuration is created for. + example: slack + teamId: + nullable: true + type: string + description: 'When the configuration was created for a team, this will show the ID of the team.' + example: team_nLlpyC6RE1qxydlFKbrxDlud + type: + type: string + enum: + - integration-configuration + updatedAt: + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + userId: + type: string + description: The ID of the user that created the configuration. + example: kr1PsOIzqEL5Xg6M4VZcZosf + scopes: + items: + type: string + type: array + description: The resources that are allowed to be accessed by the configuration. + example: + - 'read:project' + - 'read-write:log-drain' + scopesQueue: + items: + properties: + scopes: + properties: + added: + items: + type: string + enum: + - 'read:integration-configuration' + - 'read-write:integration-configuration' + - 'read:deployment' + - 'read-write:deployment' + - 'read-write:deployment-check' + - 'read:project' + - 'read-write:project' + - 'read-write:project-env-vars' + - 'read-write:global-project-env-vars' + - 'read:team' + - 'read:user' + - 'read-write:log-drain' + - 'read:domain' + - 'read-write:domain' + - 'read-write:edge-config' + - 'read-write:otel-endpoint' + - 'read:monitoring' + type: array + upgraded: + items: + type: string + enum: + - 'read:integration-configuration' + - 'read-write:integration-configuration' + - 'read:deployment' + - 'read-write:deployment' + - 'read-write:deployment-check' + - 'read:project' + - 'read-write:project' + - 'read-write:project-env-vars' + - 'read-write:global-project-env-vars' + - 'read:team' + - 'read:user' + - 'read-write:log-drain' + - 'read:domain' + - 'read-write:domain' + - 'read-write:edge-config' + - 'read-write:otel-endpoint' + - 'read:monitoring' + type: array + required: + - added + - upgraded + type: object + note: + type: string + requestedAt: + type: number + confirmedAt: + type: number + required: + - scopes + - note + - requestedAt + type: object + type: array + disabledAt: + type: number + description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' + example: 1558531915505 + deletedAt: + nullable: true + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + disabledReason: + type: string + enum: + - log-drain-high-error-rate + - log-drains-add-on-disabled-by-owner + - account-plan-downgrade + - disabled-by-admin + - original-owner-left-the-team + canConfigureOpenTelemetry: + type: boolean + required: + - projectSelection + - createdAt + - id + - integrationId + - ownerId + - slug + - type + - updatedAt + - userId + - scopes + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The configuration was not found + parameters: + - name: id + description: ID of the configuration to check + in: path + required: true + schema: + type: string + description: ID of the configuration to check + example: icfg_cuwj0AdCdH3BwWT4LPijCC7t + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + delete: + description: 'Allows to remove the configuration with the `id` provided in the parameters. The configuration and all of its resources will be removed. This includes Webhooks, LogDrains and Project Env variables.' + operationId: deleteConfiguration + security: + - bearerToken: [] + summary: Delete an integration configuration + tags: + - integrations + responses: + '204': + description: The configuration was successfully removed + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The configuration was not found + parameters: + - name: id + description: ID of the configuration to delete + in: path + required: true + schema: + type: string + description: ID of the configuration to delete + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v1/integrations/git-namespaces: + get: + description: 'Lists git namespaces for a supported provider. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider is not provided, it will try to obtain it from the user that authenticated the request.' + operationId: gitNamespaces + security: + - bearerToken: [] + summary: List git namespaces by provider + tags: + - integrations + responses: + '200': + description: '' + content: + application/json: + schema: + items: + properties: + provider: + type: string + slug: + type: string + id: + oneOf: + - type: string + - type: number + ownerType: + type: string + name: + type: string + isAccessRestricted: + type: boolean + installationId: + type: number + requireReauth: + type: boolean + required: + - provider + - slug + - id + - ownerType + type: object + type: array + '400': + description: One of the provided values in the request query is invalid. + '403': + description: You do not have permission to access this resource. + parameters: + - name: host + description: 'The custom Git host if using a custom Git provider, like GitHub Enterprise Server' + in: query + schema: + description: 'The custom Git host if using a custom Git provider, like GitHub Enterprise Server' + type: string + example: ghes-test.now.systems + - name: provider + in: query + schema: + type: string + enum: + - github + - github-custom-host + - gitlab + - bitbucket + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v1/integrations/search-repo: + get: + description: 'Lists git repositories linked to a namespace `id` for a supported provider. A specific namespace `id` can be obtained via the `git-namespaces` endpoint. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider or namespace is not provided, it will try to obtain it from the user that authenticated the request.' + operationId: gitNamespaces + security: + - bearerToken: [] + summary: List git repositories linked to namespace by provider + tags: + - integrations + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + gitAccount: + properties: + provider: + type: string + enum: + - github + - github-custom-host + - gitlab + - bitbucket + namespaceId: + nullable: true + oneOf: + - type: string + - type: number + required: + - provider + - namespaceId + type: object + repos: + items: + properties: + id: + oneOf: + - type: string + - type: number + provider: + type: string + enum: + - github + - github-custom-host + - gitlab + - bitbucket + url: + type: string + name: + type: string + slug: + type: string + namespace: + type: string + owner: + properties: + id: + oneOf: + - type: string + - type: number + name: + type: string + required: + - id + - name + type: object + ownerType: + type: string + enum: + - user + - team + private: + type: boolean + defaultBranch: + type: string + updatedAt: + type: number + required: + - id + - provider + - url + - name + - slug + - namespace + - owner + - ownerType + - private + - defaultBranch + - updatedAt + type: object + type: array + required: + - gitAccount + - repos + type: object + '400': + description: One of the provided values in the request query is invalid. + '403': + description: You do not have permission to access this resource. + parameters: + - name: query + in: query + schema: + type: string + - name: namespaceId + in: query + schema: + type: string + nullable: true + - name: provider + in: query + schema: + enum: + - github + - github-custom-host + - gitlab + - bitbucket + - name: installationId + in: query + schema: + type: string + - name: host + description: 'The custom Git host if using a custom Git provider, like GitHub Enterprise Server' + in: query + schema: + description: 'The custom Git host if using a custom Git provider, like GitHub Enterprise Server' + type: string + example: ghes-test.now.systems + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/log_drains.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/log_drains.yaml new file mode 100644 index 0000000..00b667a --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/log_drains.yaml @@ -0,0 +1,907 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - log_drains + description: logDrains +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + integrations: + id: vercel.log_drains.integrations + name: integrations + title: Integrations + methods: + get_integration_log_drains: + operation: + $ref: '#/paths/~1v2~1integrations~1log-drains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_log_drain: + operation: + $ref: '#/paths/~1v2~1integrations~1log-drains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_integration_log_drain: + operation: + $ref: '#/paths/~1v1~1integrations~1log-drains~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/integrations/methods/get_integration_log_drains' + insert: + - $ref: '#/components/x-stackQL-resources/integrations/methods/create_log_drain' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/integrations/methods/delete_integration_log_drain' + log_drains: + id: vercel.log_drains.log_drains + name: log_drains + title: Log Drains + methods: + get_configurable_log_drain: + operation: + $ref: '#/paths/~1v1~1log-drains~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_configurable_log_drain: + operation: + $ref: '#/paths/~1v1~1log-drains~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + get_configurable_log_drains: + operation: + $ref: '#/paths/~1v1~1log-drains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_configurable_log_drain: + operation: + $ref: '#/paths/~1v1~1log-drains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/log_drains/methods/get_configurable_log_drain' + - $ref: '#/components/x-stackQL-resources/log_drains/methods/get_configurable_log_drains' + insert: + - $ref: '#/components/x-stackQL-resources/log_drains/methods/create_configurable_log_drain' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/log_drains/methods/delete_configurable_log_drain' +paths: + /v2/integrations/log-drains: + get: + description: 'Retrieves a list of all Integration log drains that are defined for the authenticated user or team. When using an OAuth2 token, the list is limited to log drains created by the authenticated integration.' + operationId: getIntegrationLogDrains + security: + - bearerToken: [] + summary: Retrieves a list of Integration log drains + tags: + - logDrains + responses: + '200': + description: A list of log drains + content: + application/json: + schema: + items: + properties: + clientId: + type: string + description: The oauth2 client application id that created this log drain + example: oac_xRhY4LAB7yLhUADD69EvV7ct + configurationId: + type: string + description: The client configuration this log drain was created with + example: icfg_cuwj0AdCdH3BwWT4LPijCC7t + createdAt: + type: number + description: A timestamp that tells you when the log drain was created + example: 1558531915505 + id: + type: string + description: The unique identifier of the log drain. Always prefixed with `ld_` + example: ld_nBuA7zCID8g4QZ8g + deliveryFormat: + type: string + enum: + - json + - ndjson + - syslog + description: The delivery log format + example: json + name: + type: string + description: The name of the log drain + example: My first log drain + ownerId: + type: string + description: The identifier of the team or user whose events will trigger the log drain + example: kr1PsOIzqEL5Xg6M4VZcZosf + projectId: + nullable: true + type: string + example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb + projectIds: + items: + type: string + type: array + description: The identifier of the projects this log drain is associated with + example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb + url: + type: string + description: The URL to call when logs are generated + example: 'https://example.com/log-drain' + sources: + items: + type: string + enum: + - static + - lambda + - build + - edge + - external + - deployment + description: The sources from which logs are currently being delivered to this log drain. + example: + - build + - edge + type: array + description: The sources from which logs are currently being delivered to this log drain. + example: + - build + - edge + createdFrom: + type: string + enum: + - self-served + - integration + description: Whether the log drain was created by an integration or by a user + example: integration + headers: + additionalProperties: + type: string + type: object + description: The headers to send with the request + example: '{"Authorization": "Bearer 123"}' + environment: + type: string + enum: + - preview + - production + description: The environment of log drain + example: production + branch: + type: string + description: The branch regexp of log drain + example: feature/* + required: + - createdAt + - id + - name + - ownerId + - url + type: object + type: array + '400': + description: '' + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + post: + description: 'Creates an Integration log drain. This endpoint must be called with an OAuth2 client (integration), since log drains are tied to integrations. If it is called with a different token type it will produce a 400 error.' + operationId: createLogDrain + security: + - bearerToken: [] + summary: Creates a new Integration Log Drain + tags: + - logDrains + responses: + '200': + description: The log drain was successfully created + content: + application/json: + schema: + properties: + clientId: + type: string + description: The oauth2 client application id that created this log drain + example: oac_xRhY4LAB7yLhUADD69EvV7ct + configurationId: + type: string + description: The client configuration this log drain was created with + example: icfg_cuwj0AdCdH3BwWT4LPijCC7t + createdAt: + type: number + description: A timestamp that tells you when the log drain was created + example: 1558531915505 + id: + type: string + description: The unique identifier of the log drain. Always prefixed with `ld_` + example: ld_nBuA7zCID8g4QZ8g + deliveryFormat: + type: string + enum: + - json + - ndjson + - syslog + description: The delivery log format + example: json + name: + type: string + description: The name of the log drain + example: My first log drain + ownerId: + type: string + description: The identifier of the team or user whose events will trigger the log drain + example: kr1PsOIzqEL5Xg6M4VZcZosf + projectId: + nullable: true + type: string + example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb + projectIds: + items: + type: string + type: array + description: The identifier of the projects this log drain is associated with + example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb + url: + type: string + description: The URL to call when logs are generated + example: 'https://example.com/log-drain' + sources: + items: + type: string + enum: + - static + - lambda + - build + - edge + - external + - deployment + description: The sources from which logs are currently being delivered to this log drain. + example: + - build + - edge + type: array + description: The sources from which logs are currently being delivered to this log drain. + example: + - build + - edge + createdFrom: + type: string + enum: + - self-served + - integration + description: Whether the log drain was created by an integration or by a user + example: integration + headers: + additionalProperties: + type: string + type: object + description: The headers to send with the request + example: '{"Authorization": "Bearer 123"}' + environment: + type: string + enum: + - preview + - production + description: The environment of log drain + example: production + branch: + type: string + description: The branch regexp of log drain + example: feature/* + required: + - createdAt + - id + - name + - ownerId + - url + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + The provided token is not from an OAuth2 Client + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + name: + description: The name of the log drain + example: My first log drain + maxLength: 100 + pattern: '^[A-z0-9_ -]+$' + type: string + projectIds: + minItems: 1 + maxItems: 50 + type: array + items: + pattern: '^[a-zA-z0-9_]+$' + type: string + secret: + description: A secret to sign log drain notification headers so a consumer can verify their authenticity + example: a1Xsfd325fXcs + maxLength: 100 + pattern: '^[A-z0-9_ -]+$' + type: string + deliveryFormat: + description: The delivery log format + example: json + enum: + - json + - ndjson + - syslog + url: + description: 'The url where you will receive logs. The protocol must be `https://` or `http://` when type is `json` and `ndjson`, and `syslog+tls:` or `syslog:` when the type is `syslog`.' + example: 'https://example.com/log-drain' + format: uri + pattern: '^(https?|syslog\\+tls|syslog)://' + type: string + sources: + type: array + uniqueItems: true + items: + type: string + enum: + - static + - lambda + - build + - edge + - external + minItems: 1 + headers: + description: Headers to be sent together with the request + type: object + additionalProperties: + type: string + environment: + description: The environment of log drain + example: production + enum: + - preview + - production + branch: + description: The branch regexp of log drain + example: feature/* + type: string + previousLogDrainId: + description: The id of the log drain that was previously created and deleted + example: ld_1 + type: string + required: + - name + - url + type: object + '/v1/integrations/log-drains/{id}': + delete: + description: 'Deletes the Integration log drain with the provided `id`. When using an OAuth2 Token, the log drain can be deleted only if the integration owns it.' + operationId: deleteIntegrationLogDrain + security: + - bearerToken: [] + summary: Deletes the Integration log drain with the provided `id` + tags: + - logDrains + responses: + '204': + description: The log drain was successfully deleted + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The log drain was not found + parameters: + - name: id + description: ID of the log drain to be deleted + in: path + required: true + schema: + description: ID of the log drain to be deleted + type: string + - name: updateFlow + description: 'If this API is being called as part of an update flow, this should be set to true' + in: query + required: false + schema: + description: 'If this API is being called as part of an update flow, this should be set to true' + type: boolean + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/log-drains/{id}': + get: + description: Retrieves a Configurable Log Drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be accessed. + operationId: getConfigurableLogDrain + security: + - bearerToken: [] + summary: Retrieves a Configurable Log Drain + tags: + - logDrains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + deliveryFormat: + type: string + enum: + - json + - ndjson + - syslog + url: + type: string + name: + type: string + clientId: + type: string + configurationId: + type: string + teamId: + nullable: true + type: string + ownerId: + type: string + projectIds: + items: + type: string + type: array + createdAt: + type: number + sources: + items: + type: string + enum: + - static + - lambda + - build + - edge + - external + - deployment + type: array + headers: + additionalProperties: + type: string + type: object + environment: + type: string + enum: + - production + - preview + branch: + type: string + status: + type: string + enum: + - enabled + - disabled + - errored + disabledAt: + type: number + disabledReason: + type: string + enum: + - log-drain-high-error-rate + - log-drains-add-on-disabled-by-owner + - disabled-by-admin + - account-plan-downgrade + disabledBy: + type: string + firstErrorTimestamp: + type: number + secret: + type: string + createdFrom: + type: string + enum: + - self-served + required: + - id + - deliveryFormat + - url + - name + - ownerId + - createdAt + - secret + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: id + description: ID of the log drain. + in: path + required: true + schema: + type: string + description: ID of the log drain. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + delete: + description: Deletes a Configurable Log Drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be deleted. + operationId: deleteConfigurableLogDrain + security: + - bearerToken: [] + summary: Deletes a Configurable Log Drain + tags: + - logDrains + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: id + description: ID of the log drain to be deleted. + in: path + required: true + schema: + type: string + description: ID of the log drain to be deleted. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v1/log-drains: + get: + description: Retrieves a list of Configurable Log Drains. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be accessed. + operationId: getConfigurableLogDrains + security: + - bearerToken: [] + summary: Retrieves a list of Configurable Log Drains + tags: + - logDrains + responses: + '200': + description: '' + content: + application/json: + schema: + items: + properties: + id: + type: string + deliveryFormat: + type: string + enum: + - json + - ndjson + - syslog + url: + type: string + name: + type: string + clientId: + type: string + configurationId: + type: string + teamId: + nullable: true + type: string + ownerId: + type: string + projectIds: + items: + type: string + type: array + createdAt: + type: number + sources: + items: + type: string + enum: + - static + - lambda + - build + - edge + - external + - deployment + type: array + headers: + additionalProperties: + type: string + type: object + environment: + type: string + enum: + - production + - preview + branch: + type: string + status: + type: string + enum: + - enabled + - disabled + - errored + disabledAt: + type: number + disabledReason: + type: string + enum: + - log-drain-high-error-rate + - log-drains-add-on-disabled-by-owner + - disabled-by-admin + - account-plan-downgrade + disabledBy: + type: string + firstErrorTimestamp: + type: number + secret: + type: string + createdFrom: + type: string + enum: + - self-served + required: + - id + - deliveryFormat + - url + - name + - ownerId + - createdAt + - secret + type: object + type: array + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: projectId + in: query + schema: + pattern: '^[a-zA-z0-9_]+$' + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + post: + description: Creates a configurable log drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed) + operationId: createConfigurableLogDrain + security: + - bearerToken: [] + summary: Creates a Configurable Log Drain + tags: + - logDrains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + secret: + type: string + description: The secret to validate the log-drain payload + id: + type: string + deliveryFormat: + type: string + enum: + - json + - ndjson + - syslog + url: + type: string + name: + type: string + clientId: + type: string + configurationId: + type: string + teamId: + nullable: true + type: string + ownerId: + type: string + projectIds: + items: + type: string + type: array + createdAt: + type: number + sources: + items: + type: string + enum: + - static + - lambda + - build + - edge + - external + - deployment + type: array + headers: + additionalProperties: + type: string + type: object + environment: + type: string + enum: + - production + - preview + branch: + type: string + status: + type: string + enum: + - enabled + - disabled + - errored + disabledAt: + type: number + disabledReason: + type: string + enum: + - log-drain-high-error-rate + - log-drains-add-on-disabled-by-owner + - disabled-by-admin + - account-plan-downgrade + disabledBy: + type: string + firstErrorTimestamp: + type: number + createdFrom: + type: string + enum: + - self-served + required: + - id + - deliveryFormat + - url + - name + - ownerId + - createdAt + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - deliveryFormat + - url + - sources + properties: + deliveryFormat: + description: The delivery log format + example: json + enum: + - json + - ndjson + url: + description: The log drain url + format: uri + pattern: '^(http|https)?://' + type: string + headers: + description: Headers to be sent together with the request + type: object + additionalProperties: + type: string + projectIds: + minItems: 1 + maxItems: 50 + type: array + items: + pattern: '^[a-zA-z0-9_]+$' + type: string + sources: + type: array + uniqueItems: true + items: + type: string + enum: + - static + - lambda + - build + - edge + - external + minItems: 1 + environment: + description: The environment of log drain + example: production + enum: + - preview + - production + branch: + description: The branch regexp of log drain + example: feature/* + type: string + secret: + description: Custom secret of log drain + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/project_members.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/project_members.yaml new file mode 100644 index 0000000..dcf88a2 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/project_members.yaml @@ -0,0 +1,345 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - project_members + description: projectMembers +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + projects_members: + id: vercel.project_members.projects_members + name: projects_members + title: Projects Members + methods: + get_project_members: + operation: + $ref: '#/paths/~1v1~1projects~1{idOrName}~1members/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.members + _get_project_members: + operation: + $ref: '#/paths/~1v1~1projects~1{idOrName}~1members/get' + response: + mediaType: application/json + openAPIDocKey: '200' + add_project_member: + operation: + $ref: '#/paths/~1v1~1projects~1{idOrName}~1members/post' + response: + mediaType: application/json + openAPIDocKey: '200' + remove_project_member: + operation: + $ref: '#/paths/~1v1~1projects~1{idOrName}~1members~1{uid}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/projects_members/methods/get_project_members' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/projects_members/methods/remove_project_member' +paths: + '/v1/projects/{idOrName}/members': + get: + description: Lists all members of a project. + operationId: getProjectMembers + security: + - bearerToken: [] + summary: List project members + tags: + - projectMembers + responses: + '200': + description: Paginated list of members for the project. + content: + application/json: + schema: + oneOf: + - type: object + - properties: + members: + items: + properties: + avatar: + type: string + description: ID of the file for the Avatar of this member. + example: 123a6c5209bc3778245d011443644c8d27dc2c50 + email: + type: string + description: The email of this member. + example: jane.doe@example.com + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_VIEWER + description: Role of this user in the project. + example: ADMIN + uid: + type: string + description: The ID of this user. + example: zTuNVUXEAvvnNN3IaqinkyMw + username: + type: string + description: The unique username of this user. + example: jane-doe + name: + type: string + description: The name of this user. + example: Jane Doe + createdAt: + type: number + description: Timestamp in milliseconds when this member was added. + example: 1588720733602 + required: + - email + - role + - uid + - username + - createdAt + type: object + type: array + pagination: + properties: + hasNext: + type: boolean + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - hasNext + - count + - next + - prev + type: object + required: + - members + - pagination + type: object + description: Paginated list of members for the project. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The ID or name of the Project. + in: path + required: true + schema: + type: string + description: The ID or name of the Project. + example: prj_pavWOn1iLObbXLRiwVvzmPrTWyTf + - name: limit + description: Limit how many project members should be returned + in: query + required: false + schema: + description: Limit how many project members should be returned + example: 20 + type: integer + minimum: 1 + maximum: 100 + - name: since + description: Timestamp in milliseconds to only include members added since then. + in: query + required: false + schema: + description: Timestamp in milliseconds to only include members added since then. + example: 1540095775951 + type: integer + - name: until + description: Timestamp in milliseconds to only include members added until then. + in: query + required: false + schema: + description: Timestamp in milliseconds to only include members added until then. + example: 1540095775951 + type: integer + - name: search + description: 'Search project members by their name, username, and email.' + in: query + required: false + schema: + description: 'Search project members by their name, username, and email.' + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + post: + description: Adds a new member to the project. + operationId: addProjectMember + security: + - bearerToken: [] + summary: Adds a new member to a project. + tags: + - projectMembers + responses: + '200': + description: Responds with the project ID on success. + content: + application/json: + schema: + properties: + id: + type: string + required: + - id + type: object + description: Responds with the project ID on success. + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '500': + description: '' + parameters: + - name: idOrName + description: The ID or name of the Project. + in: path + required: true + schema: + type: string + description: The ID or name of the Project. + example: prj_pavWOn1iLObbXLRiwVvzmPrTWyTf + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - role + oneOf: + - required: + - uid + - required: + - username + - required: + - email + properties: + uid: + type: string + maxLength: 256 + example: ndlgr43fadlPyCtREAqxxdyFK + description: The ID of the team member that should be added to this project. + username: + type: string + maxLength: 256 + example: example + description: The username of the team member that should be added to this project. + email: + type: string + format: email + example: entity@example.com + description: The email of the team member that should be added to this project. + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_VIEWER + example: ADMIN + description: The project role of the member that will be added. + '/v1/projects/{idOrName}/members/{uid}': + delete: + description: Remove a member from a specific project + operationId: removeProjectMember + security: + - bearerToken: [] + summary: Remove a Project Member + tags: + - projectMembers + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + required: + - id + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The ID or name of the Project. + in: path + required: true + schema: + type: string + description: The ID or name of the Project. + example: prj_pavWOn1iLObbXLRiwVvzmPrTWyTf + - name: uid + description: The user ID of the member. + in: path + required: true + schema: + type: string + description: The user ID of the member. + example: ndlgr43fadlPyCtREAqxxdyFK + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/projects.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/projects.yaml new file mode 100644 index 0000000..7392c3e --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/projects.yaml @@ -0,0 +1,11897 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - projects + description: projects +components: + schemas: + ACLAction: + type: string + enum: + - create + - delete + - read + - update + - list + description: Enum containing the actions that can be performed against a resource. Group operations are included. + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + projects: + id: vercel.projects.projects + name: projects + title: Projects + methods: + update_project_data_cache: + operation: + $ref: '#/paths/~1v1~1data-cache~1projects~1{projectId}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + get_projects: + operation: + $ref: '#/paths/~1v9~1projects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.projects + _get_projects: + operation: + $ref: '#/paths/~1v9~1projects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_project: + operation: + $ref: '#/paths/~1v9~1projects/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get_project: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_project: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_project: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/projects/methods/get_project' + - $ref: '#/components/x-stackQL-resources/projects/methods/get_projects' + insert: + - $ref: '#/components/x-stackQL-resources/projects/methods/create_project' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/projects/methods/delete_project' + domains: + id: vercel.projects.domains + name: domains + title: Domains + methods: + get_project_domains: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.domains + _get_project_domains: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_project_domain: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains~1{domain}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_project_domain: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains~1{domain}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + remove_project_domain: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains~1{domain}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + add_project_domain: + operation: + $ref: '#/paths/~1v10~1projects~1{idOrName}~1domains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + verify_project_domain: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains~1{domain}~1verify/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domains/methods/get_project_domain' + - $ref: '#/components/x-stackQL-resources/domains/methods/get_project_domains' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/domains/methods/remove_project_domain' + env: + id: vercel.projects.env + name: env + title: Env + methods: + filter_project_envs: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1env/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_project_env: + operation: + $ref: '#/paths/~1v1~1projects~1{idOrName}~1env~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_project_env: + operation: + $ref: '#/paths/~1v10~1projects~1{idOrName}~1env/post' + response: + mediaType: application/json + openAPIDocKey: '200' + remove_project_env: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1env~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + edit_project_env: + operation: + $ref: '#/paths/~1v9~1projects~1{idOrName}~1env~1{id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/env/methods/get_project_env' + insert: + - $ref: '#/components/x-stackQL-resources/env/methods/create_project_env' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/env/methods/remove_project_env' +paths: + '/v1/data-cache/projects/{projectId}': + patch: + description: Update the data cache feature on a project. + operationId: updateProjectDataCache + security: + - bearerToken: [] + summary: Update the data cache feature + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + accountId: + type: string + analytics: + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - id + - canceledAt + - disabledAt + - enabledAt + type: object + autoExposeSystemEnvs: + type: boolean + autoAssignCustomDomains: + type: boolean + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + nullable: true + type: string + commandForIgnoringBuildStep: + nullable: true + type: string + connectConfigurationId: + nullable: true + type: string + connectBuildsEnabled: + type: boolean + createdAt: + type: number + customerSupportCodeVisibility: + type: boolean + crons: + properties: + enabledAt: + type: number + description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' + disabledAt: + nullable: true + type: number + description: The time the feature was disabled for this project. + updatedAt: + type: number + deploymentId: + nullable: true + type: string + description: The ID of the Deployment from which the definitions originated. + definitions: + items: + properties: + host: + type: string + description: The hostname that should be used. + example: vercel.com + path: + type: string + description: The path that should be called for the cronjob. + example: /api/crons/sync-something?hello=world + schedule: + type: string + description: The cron expression. + example: 0 0 * * * + required: + - host + - path + - schedule + type: object + type: array + required: + - enabledAt + - disabledAt + - updatedAt + - deploymentId + - definitions + type: object + dataCache: + properties: + userDisabled: + type: boolean + storageSizeBytes: + nullable: true + type: number + unlimited: + type: boolean + required: + - userDisabled + type: object + devCommand: + nullable: true + type: string + directoryListing: + type: boolean + installCommand: + nullable: true + type: string + env: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - secret + - system + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + type: array + framework: + nullable: true + type: string + enum: + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + gitForkProtection: + type: boolean + gitLFS: + type: boolean + id: + type: string + latestDeployments: + items: + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: array + link: + oneOf: + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectUrl: + type: string + type: + type: string + enum: + - gitlab + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + name: + type: string + slug: + type: string + owner: + type: string + type: + type: string + enum: + - bitbucket + uuid: + type: string + workspaceUuid: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: object + productionDeploymentsFastLane: + type: boolean + publicSource: + nullable: true + type: boolean + rootDirectory: + nullable: true + type: string + serverlessFunctionRegion: + nullable: true + type: string + skipGitConnectDuringLink: + type: boolean + sourceFilesOutsideRootDirectory: + type: boolean + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + updatedAt: + type: number + live: + type: boolean + enablePreviewFeedback: + nullable: true + type: boolean + permissions: + properties: + aliasGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ownEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sensitiveEnvironmentVariablePolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPaymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationUsageAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + openTelemetryEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + paymentMethod: + items: + $ref: '#/components/schemas/ACLAction' + type: array + permissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgres: + items: + $ref: '#/components/schemas/ACLAction' + type: array + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + space: + items: + $ref: '#/components/schemas/ACLAction' + type: array + spaceRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtectionInvoiceItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + team: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamAccessRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamFellowMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInvite: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteCode: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamJoin: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembershipDisconnectSAML: + items: + $ref: '#/components/schemas/ACLAction' + type: array + token: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usageCycle: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalyticsPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook-event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfigurationLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deployment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckReRunFromProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentProductionGit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPrivate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPromote: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentRollback: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logsPreset: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + job: + items: + $ref: '#/components/schemas/ACLAction' + type: array + project: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentHook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedIps: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + type: object + lastRollbackTarget: + nullable: true + type: object + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + type: string + toDeploymentId: + type: string + jobStatus: + type: string + enum: + - succeeded + - failed + - skipped + - pending + - in-progress + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - toDeploymentId + - jobStatus + - requestedAt + - type + type: object + hasFloatingAliases: + type: boolean + protectionBypass: + additionalProperties: + properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + trustedIps: + nullable: true + oneOf: + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: + items: + properties: + value: + type: string + note: + type: string + required: + - value + type: object + type: array + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - deploymentType + - addresses + - protectionMode + type: object + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + required: + - deploymentType + type: object + gitComments: + properties: + onPullRequest: + type: boolean + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + description: Whether the Vercel bot should comment on commits + required: + - onPullRequest + - onCommit + type: object + paused: + type: boolean + required: + - accountId + - directoryListing + - id + - name + - nodeVersion + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: projectId + description: The unique project identifier + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + disabled: + type: boolean + example: true + description: 'Enable or disable data cache for the project - default: false' + /v9/projects: + get: + description: Allows to retrieve the list of projects of the authenticated user or team. The list will be paginated and the provided query parameters allow filtering the returned projects. + operationId: getProjects + security: + - bearerToken: [] + summary: Retrieve a list of projects + tags: + - projects + responses: + '200': + description: The paginated list of projects + content: + application/json: + schema: + properties: + projects: + items: + properties: + accountId: + type: string + analytics: + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - id + - canceledAt + - disabledAt + - enabledAt + type: object + autoExposeSystemEnvs: + type: boolean + autoAssignCustomDomains: + type: boolean + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + nullable: true + type: string + commandForIgnoringBuildStep: + nullable: true + type: string + connectConfigurationId: + nullable: true + type: string + connectBuildsEnabled: + type: boolean + createdAt: + type: number + customerSupportCodeVisibility: + type: boolean + crons: + properties: + enabledAt: + type: number + description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' + disabledAt: + nullable: true + type: number + description: The time the feature was disabled for this project. + updatedAt: + type: number + deploymentId: + nullable: true + type: string + description: The ID of the Deployment from which the definitions originated. + definitions: + items: + properties: + host: + type: string + description: The hostname that should be used. + example: vercel.com + path: + type: string + description: The path that should be called for the cronjob. + example: /api/crons/sync-something?hello=world + schedule: + type: string + description: The cron expression. + example: 0 0 * * * + required: + - host + - path + - schedule + type: object + type: array + required: + - enabledAt + - disabledAt + - updatedAt + - deploymentId + - definitions + type: object + dataCache: + properties: + userDisabled: + type: boolean + storageSizeBytes: + nullable: true + type: number + unlimited: + type: boolean + required: + - userDisabled + type: object + devCommand: + nullable: true + type: string + directoryListing: + type: boolean + installCommand: + nullable: true + type: string + env: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - secret + - system + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + type: array + framework: + nullable: true + type: string + enum: + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + gitForkProtection: + type: boolean + gitLFS: + type: boolean + id: + type: string + latestDeployments: + items: + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: array + link: + oneOf: + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectUrl: + type: string + type: + type: string + enum: + - gitlab + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + name: + type: string + slug: + type: string + owner: + type: string + type: + type: string + enum: + - bitbucket + uuid: + type: string + workspaceUuid: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: object + productionDeploymentsFastLane: + type: boolean + publicSource: + nullable: true + type: boolean + rootDirectory: + nullable: true + type: string + serverlessFunctionRegion: + nullable: true + type: string + skipGitConnectDuringLink: + type: boolean + sourceFilesOutsideRootDirectory: + type: boolean + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + updatedAt: + type: number + live: + type: boolean + enablePreviewFeedback: + nullable: true + type: boolean + permissions: + properties: + aliasProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfigurationLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deployment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckReRunFromProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentProductionGit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPrivate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPromote: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentRollback: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logsPreset: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + job: + items: + $ref: '#/components/schemas/ACLAction' + type: array + project: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentHook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedIps: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ownEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sensitiveEnvironmentVariablePolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPaymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationUsageAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + openTelemetryEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + paymentMethod: + items: + $ref: '#/components/schemas/ACLAction' + type: array + permissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgres: + items: + $ref: '#/components/schemas/ACLAction' + type: array + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + space: + items: + $ref: '#/components/schemas/ACLAction' + type: array + spaceRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtectionInvoiceItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + team: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamAccessRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamFellowMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInvite: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteCode: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamJoin: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembershipDisconnectSAML: + items: + $ref: '#/components/schemas/ACLAction' + type: array + token: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usageCycle: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalyticsPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook-event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + type: object + lastRollbackTarget: + nullable: true + type: object + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + type: string + toDeploymentId: + type: string + jobStatus: + type: string + enum: + - succeeded + - failed + - skipped + - pending + - in-progress + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - toDeploymentId + - jobStatus + - requestedAt + - type + type: object + hasFloatingAliases: + type: boolean + protectionBypass: + additionalProperties: + properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + trustedIps: + nullable: true + oneOf: + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: + items: + properties: + value: + type: string + note: + type: string + required: + - value + type: object + type: array + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - deploymentType + - addresses + - protectionMode + type: object + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + required: + - deploymentType + type: object + gitComments: + properties: + onPullRequest: + type: boolean + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + description: Whether the Vercel bot should comment on commits + required: + - onPullRequest + - onCommit + type: object + paused: + type: boolean + required: + - accountId + - directoryListing + - id + - name + - nodeVersion + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - projects + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: from + description: Query only projects updated after the given timestamp + in: query + schema: + description: Query only projects updated after the given timestamp + type: string + - name: gitForkProtection + description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed + in: query + schema: + description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed + type: string + enum: + - '1' + - '0' + example: '1' + - name: limit + description: Limit the number of projects returned + in: query + schema: + description: Limit the number of projects returned + type: string + - name: search + description: Search projects by the name field + in: query + schema: + description: Search projects by the name field + type: string + - name: repo + description: Filter results by repo. Also used for project count + in: query + schema: + description: Filter results by repo. Also used for project count + type: string + - name: repoId + description: Filter results by Repository ID. + in: query + schema: + description: Filter results by Repository ID. + type: string + - name: repoUrl + description: Filter results by Repository URL. + in: query + schema: + description: Filter results by Repository URL. + type: string + example: 'https://github.com/vercel/next.js' + - name: excludeRepos + description: Filter results by excluding those projects that belong to a repo + in: query + schema: + description: Filter results by excluding those projects that belong to a repo + type: string + - name: edgeConfigId + description: Filter results by connected Edge Config ID + in: query + schema: + description: Filter results by connected Edge Config ID + type: string + - name: edgeConfigTokenId + description: Filter results by connected Edge Config Token ID + in: query + schema: + description: Filter results by connected Edge Config Token ID + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + post: + description: Allows to create a new project with the provided configuration. It only requires the project `name` but more configuration can be provided to override the defaults. + operationId: createProject + security: + - bearerToken: [] + summary: Create a new project + tags: + - projects + responses: + '200': + description: The project was successfuly created + content: + application/json: + schema: + properties: + accountId: + type: string + analytics: + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - id + - canceledAt + - disabledAt + - enabledAt + type: object + autoExposeSystemEnvs: + type: boolean + autoAssignCustomDomains: + type: boolean + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + nullable: true + type: string + commandForIgnoringBuildStep: + nullable: true + type: string + connectConfigurationId: + nullable: true + type: string + connectBuildsEnabled: + type: boolean + createdAt: + type: number + customerSupportCodeVisibility: + type: boolean + crons: + properties: + enabledAt: + type: number + description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' + disabledAt: + nullable: true + type: number + description: The time the feature was disabled for this project. + updatedAt: + type: number + deploymentId: + nullable: true + type: string + description: The ID of the Deployment from which the definitions originated. + definitions: + items: + properties: + host: + type: string + description: The hostname that should be used. + example: vercel.com + path: + type: string + description: The path that should be called for the cronjob. + example: /api/crons/sync-something?hello=world + schedule: + type: string + description: The cron expression. + example: 0 0 * * * + required: + - host + - path + - schedule + type: object + type: array + required: + - enabledAt + - disabledAt + - updatedAt + - deploymentId + - definitions + type: object + dataCache: + properties: + userDisabled: + type: boolean + storageSizeBytes: + nullable: true + type: number + unlimited: + type: boolean + required: + - userDisabled + type: object + devCommand: + nullable: true + type: string + directoryListing: + type: boolean + installCommand: + nullable: true + type: string + env: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - system + - secret + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + type: array + framework: + nullable: true + type: string + enum: + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + gitForkProtection: + type: boolean + gitLFS: + type: boolean + id: + type: string + latestDeployments: + items: + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: array + link: + oneOf: + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectUrl: + type: string + type: + type: string + enum: + - gitlab + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + name: + type: string + slug: + type: string + owner: + type: string + type: + type: string + enum: + - bitbucket + uuid: + type: string + workspaceUuid: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: object + productionDeploymentsFastLane: + type: boolean + publicSource: + nullable: true + type: boolean + rootDirectory: + nullable: true + type: string + serverlessFunctionRegion: + nullable: true + type: string + skipGitConnectDuringLink: + type: boolean + sourceFilesOutsideRootDirectory: + type: boolean + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + updatedAt: + type: number + live: + type: boolean + enablePreviewFeedback: + nullable: true + type: boolean + permissions: + properties: + aliasGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ownEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sensitiveEnvironmentVariablePolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPaymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationUsageAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + openTelemetryEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + paymentMethod: + items: + $ref: '#/components/schemas/ACLAction' + type: array + permissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgres: + items: + $ref: '#/components/schemas/ACLAction' + type: array + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + space: + items: + $ref: '#/components/schemas/ACLAction' + type: array + spaceRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtectionInvoiceItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + team: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamAccessRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamFellowMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInvite: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteCode: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamJoin: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembershipDisconnectSAML: + items: + $ref: '#/components/schemas/ACLAction' + type: array + token: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usageCycle: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalyticsPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook-event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfigurationLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deployment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckReRunFromProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentProductionGit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPrivate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPromote: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentRollback: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logsPreset: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + job: + items: + $ref: '#/components/schemas/ACLAction' + type: array + project: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentHook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedIps: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + type: object + lastRollbackTarget: + nullable: true + type: object + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + type: string + toDeploymentId: + type: string + jobStatus: + type: string + enum: + - succeeded + - failed + - skipped + - pending + - in-progress + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - toDeploymentId + - jobStatus + - requestedAt + - type + type: object + hasFloatingAliases: + type: boolean + protectionBypass: + additionalProperties: + properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + trustedIps: + nullable: true + oneOf: + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: + items: + properties: + value: + type: string + note: + type: string + required: + - value + type: object + type: array + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - deploymentType + - addresses + - protectionMode + type: object + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + required: + - deploymentType + type: object + gitComments: + properties: + onPullRequest: + type: boolean + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + description: Whether the Vercel bot should comment on commits + required: + - onPullRequest + - onCommit + type: object + paused: + type: boolean + required: + - accountId + - directoryListing + - id + - name + - nodeVersion + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The Bitbucket Webhook for the project link could not be created + The Gitlab Webhook for the project link could not be created + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '409': + description: A project with the provided name already exists. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + additionalProperties: false + properties: + buildCommand: + description: The build command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + commandForIgnoringBuildStep: + maxLength: 256 + type: string + nullable: true + devCommand: + description: The dev command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + environmentVariables: + description: Collection of ENV Variables the Project will use + items: + properties: + key: + description: Name of the ENV variable + type: string + target: + description: Deployment Target or Targets in which the ENV variable will be used + oneOf: + - enum: + - production + - preview + - development + - items: + enum: + - production + - preview + - development + type: array + gitBranch: + description: The git branch of the environment variable + type: string + maxLength: 250 + example: feature-1 + type: + description: Type of the ENV variable + enum: + - system + - secret + - encrypted + - plain + type: string + value: + description: Value for the ENV variable + type: string + required: + - key + - value + - target + type: object + type: array + framework: + description: The framework that is being used for this project. When `null` is used no framework is selected + enum: + - null + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + gitRepository: + description: 'The Git Repository that will be connected to the project. When this is defined, any pushes to the specified connected Git Repository will be automatically deployed' + properties: + repo: + description: 'The name of the git repository. For example: \"vercel/next.js\"' + type: string + type: + description: The Git Provider of the repository + enum: + - github + - gitlab + - bitbucket + required: + - type + - repo + type: object + installCommand: + description: The install command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + name: + description: The desired name for the project + example: a-project-name + type: string + maxLength: 100 + pattern: '^[a-z0-9]([a-z0-9]|-[a-z0-9])*$' + skipGitConnectDuringLink: + description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. + type: boolean + deprecated: true + outputDirectory: + description: The output directory of the project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + publicSource: + description: Specifies whether the source code and logs of the deployments for this project should be public or not + type: boolean + nullable: true + rootDirectory: + description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root + maxLength: 256 + type: string + nullable: true + serverlessFunctionRegion: + description: The region to deploy Serverless Functions in this project + maxLength: 4 + type: string + nullable: true + required: + - name + type: object + '/v9/projects/{idOrName}': + get: + description: Get the information for a specific project by passing either the project `id` or `name` in the URL. + operationId: getProject + security: + - bearerToken: [] + summary: Find a project by id or name + tags: + - projects + responses: + '200': + description: The project information + content: + application/json: + schema: + properties: + accountId: + type: string + analytics: + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - id + - canceledAt + - disabledAt + - enabledAt + type: object + autoExposeSystemEnvs: + type: boolean + autoAssignCustomDomains: + type: boolean + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + nullable: true + type: string + commandForIgnoringBuildStep: + nullable: true + type: string + connectConfigurationId: + nullable: true + type: string + connectBuildsEnabled: + type: boolean + createdAt: + type: number + customerSupportCodeVisibility: + type: boolean + crons: + properties: + enabledAt: + type: number + description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' + disabledAt: + nullable: true + type: number + description: The time the feature was disabled for this project. + updatedAt: + type: number + deploymentId: + nullable: true + type: string + description: The ID of the Deployment from which the definitions originated. + definitions: + items: + properties: + host: + type: string + description: The hostname that should be used. + example: vercel.com + path: + type: string + description: The path that should be called for the cronjob. + example: /api/crons/sync-something?hello=world + schedule: + type: string + description: The cron expression. + example: 0 0 * * * + required: + - host + - path + - schedule + type: object + type: array + required: + - enabledAt + - disabledAt + - updatedAt + - deploymentId + - definitions + type: object + dataCache: + properties: + userDisabled: + type: boolean + storageSizeBytes: + nullable: true + type: number + unlimited: + type: boolean + required: + - userDisabled + type: object + devCommand: + nullable: true + type: string + directoryListing: + type: boolean + installCommand: + nullable: true + type: string + env: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - secret + - system + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + type: array + framework: + nullable: true + type: string + enum: + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + gitForkProtection: + type: boolean + gitLFS: + type: boolean + id: + type: string + latestDeployments: + items: + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: array + link: + oneOf: + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectUrl: + type: string + type: + type: string + enum: + - gitlab + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + name: + type: string + slug: + type: string + owner: + type: string + type: + type: string + enum: + - bitbucket + uuid: + type: string + workspaceUuid: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: object + productionDeploymentsFastLane: + type: boolean + publicSource: + nullable: true + type: boolean + rootDirectory: + nullable: true + type: string + serverlessFunctionRegion: + nullable: true + type: string + skipGitConnectDuringLink: + type: boolean + sourceFilesOutsideRootDirectory: + type: boolean + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + updatedAt: + type: number + live: + type: boolean + enablePreviewFeedback: + nullable: true + type: boolean + permissions: + properties: + aliasGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ownEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sensitiveEnvironmentVariablePolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPaymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationUsageAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + openTelemetryEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + paymentMethod: + items: + $ref: '#/components/schemas/ACLAction' + type: array + permissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgres: + items: + $ref: '#/components/schemas/ACLAction' + type: array + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + space: + items: + $ref: '#/components/schemas/ACLAction' + type: array + spaceRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtectionInvoiceItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + team: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamAccessRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamFellowMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInvite: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteCode: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamJoin: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembershipDisconnectSAML: + items: + $ref: '#/components/schemas/ACLAction' + type: array + token: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usageCycle: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalyticsPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook-event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfigurationLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deployment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckReRunFromProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentProductionGit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPrivate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPromote: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentRollback: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logsPreset: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + job: + items: + $ref: '#/components/schemas/ACLAction' + type: array + project: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentHook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedIps: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + type: object + lastRollbackTarget: + nullable: true + type: object + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + type: string + toDeploymentId: + type: string + jobStatus: + type: string + enum: + - succeeded + - failed + - skipped + - pending + - in-progress + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - toDeploymentId + - jobStatus + - requestedAt + - type + type: object + hasFloatingAliases: + type: boolean + protectionBypass: + additionalProperties: + properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + trustedIps: + nullable: true + oneOf: + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: + items: + properties: + value: + type: string + note: + type: string + required: + - value + type: object + type: array + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - deploymentType + - addresses + - protectionMode + type: object + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + required: + - deploymentType + type: object + gitComments: + properties: + onPullRequest: + type: boolean + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + description: Whether the Vercel bot should comment on commits + required: + - onPullRequest + - onCommit + type: object + paused: + type: boolean + required: + - accountId + - directoryListing + - id + - name + - nodeVersion + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + oneOf: + - type: string + - type: boolean + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + patch: + description: Update the fields of a project using either its `name` or `id`. + operationId: updateProject + security: + - bearerToken: [] + summary: Update an existing project + tags: + - projects + responses: + '200': + description: The project was successfully updated + content: + application/json: + schema: + properties: + accountId: + type: string + analytics: + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - id + - canceledAt + - disabledAt + - enabledAt + type: object + autoExposeSystemEnvs: + type: boolean + autoAssignCustomDomains: + type: boolean + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + nullable: true + type: string + commandForIgnoringBuildStep: + nullable: true + type: string + connectConfigurationId: + nullable: true + type: string + connectBuildsEnabled: + type: boolean + createdAt: + type: number + customerSupportCodeVisibility: + type: boolean + crons: + properties: + enabledAt: + type: number + description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' + disabledAt: + nullable: true + type: number + description: The time the feature was disabled for this project. + updatedAt: + type: number + deploymentId: + nullable: true + type: string + description: The ID of the Deployment from which the definitions originated. + definitions: + items: + properties: + host: + type: string + description: The hostname that should be used. + example: vercel.com + path: + type: string + description: The path that should be called for the cronjob. + example: /api/crons/sync-something?hello=world + schedule: + type: string + description: The cron expression. + example: 0 0 * * * + required: + - host + - path + - schedule + type: object + type: array + required: + - enabledAt + - disabledAt + - updatedAt + - deploymentId + - definitions + type: object + dataCache: + properties: + userDisabled: + type: boolean + storageSizeBytes: + nullable: true + type: number + unlimited: + type: boolean + required: + - userDisabled + type: object + devCommand: + nullable: true + type: string + directoryListing: + type: boolean + installCommand: + nullable: true + type: string + env: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - secret + - system + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + type: array + framework: + nullable: true + type: string + enum: + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + gitForkProtection: + type: boolean + gitLFS: + type: boolean + id: + type: string + latestDeployments: + items: + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: array + link: + oneOf: + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectUrl: + type: string + type: + type: string + enum: + - gitlab + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + - properties: + name: + type: string + slug: + type: string + owner: + type: string + type: + type: string + enum: + - bitbucket + uuid: + type: string + workspaceUuid: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + productionBranch: + type: string + required: + - deployHooks + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: object + productionDeploymentsFastLane: + type: boolean + publicSource: + nullable: true + type: boolean + rootDirectory: + nullable: true + type: string + serverlessFunctionRegion: + nullable: true + type: string + skipGitConnectDuringLink: + type: boolean + sourceFilesOutsideRootDirectory: + type: boolean + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true + properties: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + connectBuildsEnabled: + type: boolean + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deploymentHostname: + type: string + name: + type: string + forced: + type: boolean + id: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + plan: + type: string + enum: + - pro + - enterprise + - hobby + - oss + private: + type: boolean + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - QUEUED + - READY + - CANCELED + readySubstate: + type: string + enum: + - STAGED + - PROMOTED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + withCache: + type: boolean + checksConclusion: + type: string + enum: + - succeeded + - failed + - skipped + - canceled + checksState: + type: string + enum: + - registered + - running + - completed + readyAt: + type: number + buildingAt: + type: number + previewCommentsEnabled: + type: boolean + description: Whether or not preview comments are enabled for the deployment + example: false + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - name + - id + - plan + - private + - readyState + - type + - url + - userId + type: object + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + updatedAt: + type: number + live: + type: boolean + enablePreviewFeedback: + nullable: true + type: boolean + permissions: + properties: + aliasGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ownEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sensitiveEnvironmentVariablePolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPaymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationUsageAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + openTelemetryEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + paymentMethod: + items: + $ref: '#/components/schemas/ACLAction' + type: array + permissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgres: + items: + $ref: '#/components/schemas/ACLAction' + type: array + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + space: + items: + $ref: '#/components/schemas/ACLAction' + type: array + spaceRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtectionInvoiceItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + team: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamAccessRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamFellowMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInvite: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteCode: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamJoin: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembershipDisconnectSAML: + items: + $ref: '#/components/schemas/ACLAction' + type: array + token: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usageCycle: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalyticsPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook-event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfigurationLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deployment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckReRunFromProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentProductionGit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPrivate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPromote: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentRollback: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logsPreset: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + job: + items: + $ref: '#/components/schemas/ACLAction' + type: array + project: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentHook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedIps: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + type: object + lastRollbackTarget: + nullable: true + type: object + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + type: string + toDeploymentId: + type: string + jobStatus: + type: string + enum: + - succeeded + - failed + - skipped + - pending + - in-progress + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - toDeploymentId + - jobStatus + - requestedAt + - type + type: object + hasFloatingAliases: + type: boolean + protectionBypass: + additionalProperties: + properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + trustedIps: + nullable: true + oneOf: + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: + items: + properties: + value: + type: string + note: + type: string + required: + - value + type: object + type: array + protectionMode: + type: string + enum: + - exclusive + - additional + required: + - deploymentType + - addresses + - protectionMode + type: object + - properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - production + required: + - deploymentType + type: object + gitComments: + properties: + onPullRequest: + type: boolean + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + description: Whether the Vercel bot should comment on commits + required: + - onPullRequest + - onCommit + type: object + paused: + type: boolean + required: + - accountId + - directoryListing + - id + - name + - nodeVersion + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + Owner does not have protection add-on + Trusted IPs is only accessible for enterprise customers + Advanced Deployment Protection is not available for the user plan + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '409': + description: |- + The provided name for the project is already being used + The project is currently being transferred. + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier or the project name + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + additionalProperties: false + properties: + autoExposeSystemEnvs: + type: boolean + autoAssignCustomDomains: + type: boolean + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + description: The build command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + commandForIgnoringBuildStep: + maxLength: 256 + type: string + nullable: true + customerSupportCodeVisibility: + description: Specifies whether customer support can see git source for a deployment + type: boolean + devCommand: + description: The dev command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + directoryListing: + type: boolean + framework: + description: The framework that is being used for this project. When `null` is used no framework is selected + enum: + - null + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + type: string + nullable: true + gitForkProtection: + description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed + type: boolean + gitLFS: + description: Specifies whether Git LFS is enabled for this project. + type: boolean + installCommand: + description: The install command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + name: + description: The desired name for the project + example: a-project-name + type: string + maxLength: 100 + pattern: '^[a-z0-9]([a-z0-9]|-[a-z0-9])*$' + nodeVersion: + enum: + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + type: string + outputDirectory: + description: The output directory of the project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + passwordProtection: + additionalProperties: false + description: Allows to protect project deployments with a password + properties: + deploymentType: + description: Specify if the password will apply to every Deployment Target or just Preview + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + type: string + password: + description: The password that will be used to protect Project Deployments + maxLength: 72 + type: string + nullable: true + required: + - deploymentType + type: object + nullable: true + publicSource: + description: Specifies whether the source code and logs of the deployments for this project should be public or not + type: boolean + nullable: true + rootDirectory: + description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root + maxLength: 256 + type: string + nullable: true + serverlessFunctionRegion: + description: The region to deploy Serverless Functions in this project + maxLength: 4 + type: string + nullable: true + skipGitConnectDuringLink: + description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. + type: boolean + deprecated: true + sourceFilesOutsideRootDirectory: + description: Indicates if there are source files outside of the root directory + type: boolean + ssoProtection: + additionalProperties: false + description: Ensures visitors to your Preview Deployments are logged into Vercel and have a minimum of Viewer access on your team + properties: + deploymentType: + default: preview + description: Specify if the Vercel Authentication (SSO Protection) will apply to every Deployment Target or just Preview + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + type: string + required: + - deploymentType + type: object + nullable: true + trustedIps: + additionalProperties: false + description: Restricts access to deployments based on the incoming request IP address + properties: + deploymentType: + description: Specify if the Trusted IPs will apply to every Deployment Target or just Preview + enum: + - all + - preview + - production + - prod_deployment_urls_and_all_previews + type: string + addresses: + type: array + items: + type: object + properties: + value: + type: string + description: The IP addresses that are allowlisted. Supported formats are IPv4 and CIDR. + note: + type: string + description: An optional note explaining what the IP address or subnet is used for + required: + - value + additionalProperties: false + minItems: 1 + protectionMode: + description: 'exclusive: ip match is enough to bypass deployment protection (regardless of other settings). additional: ip must match + any other protection should be also provided (password, vercel auth, shareable link, automation bypass header, automation bypass query param)' + enum: + - exclusive + - additional + type: string + required: + - deploymentType + - addresses + - protectionMode + type: object + nullable: true + enablePreviewFeedback: + description: Opt-in to Preview comments on the project level + type: boolean + nullable: true + type: object + delete: + description: Delete a specific project by passing either the project `id` or `name` in the URL. + operationId: deleteProject + security: + - bearerToken: [] + summary: Delete a Project + tags: + - projects + responses: + '204': + description: The project was successfuly removed + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '409': + description: '' + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier or the project name + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v9/projects/{idOrName}/domains': + get: + description: Retrieve the domains associated with a given project by passing either the project `id` or `name` in the URL. + operationId: getProjectDomains + security: + - bearerToken: [] + summary: Retrieve project domains by project by id or name + tags: + - projects + responses: + '200': + description: Successful response retrieving a list of domains + content: + application/json: + schema: + properties: + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 307 + - 301 + - 302 + - 308 + gitBranch: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - type + - domain + - value + - reason + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - name + - apexName + - projectId + - verified + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - domains + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + oneOf: + - type: string + - type: integer + - name: production + description: Filters only production domains when set to `true`. + in: query + required: false + schema: + default: 'false' + description: Filters only production domains when set to `true`. + enum: + - 'true' + - 'false' + - name: gitBranch + description: Filters domains based on specific branch. + in: query + required: false + schema: + description: Filters domains based on specific branch. + type: string + - name: redirects + description: Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default). + in: query + required: false + schema: + default: 'true' + description: Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default). + enum: + - 'true' + - 'false' + - name: redirect + description: Filters domains based on their redirect target. + in: query + required: false + schema: + description: Filters domains based on their redirect target. + type: string + example: example.com + - name: verified + description: Filters domains based on their verification status. + in: query + required: false + schema: + description: Filters domains based on their verification status. + enum: + - 'true' + - 'false' + - name: limit + description: Maximum number of domains to list from a request (max 100). + in: query + required: false + schema: + description: Maximum number of domains to list from a request (max 100). + type: number + example: 20 + - name: since + description: Get domains created after this JavaScript timestamp. + in: query + required: false + schema: + description: Get domains created after this JavaScript timestamp. + type: number + example: 1609499532000 + - name: until + description: Get domains created before this JavaScript timestamp. + in: query + required: false + schema: + description: Get domains created before this JavaScript timestamp. + type: number + example: 1612264332000 + - name: order + description: Domains sort order by createdAt + in: query + required: false + schema: + default: DESC + description: Domains sort order by createdAt + enum: + - ASC + - DESC + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v9/projects/{idOrName}/domains/{domain}': + get: + description: Get project domain by project id/name and domain name. + operationId: getProjectDomain + security: + - bearerToken: [] + summary: Get a project domain + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 307 + - 301 + - 302 + - 308 + gitBranch: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - type + - domain + - value + - reason + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - name + - apexName + - projectId + - verified + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: domain + description: The project domain name + in: path + required: true + schema: + description: The project domain name + type: string + example: www.example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + patch: + description: 'Update a project domain''s configuration, including the name, git branch and redirect of the domain.' + operationId: updateProjectDomain + security: + - bearerToken: [] + summary: Update a project domain + tags: + - projects + responses: + '200': + description: The domain was updated successfuly + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 307 + - 301 + - 302 + - 308 + gitBranch: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - type + - domain + - value + - reason + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - name + - apexName + - projectId + - verified + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The domain redirect is not valid + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '409': + description: The project is currently being transferred + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: domain + description: The project domain name + in: path + required: true + schema: + description: The project domain name + type: string + example: www.example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + gitBranch: + description: Git branch to link the project domain + example: null + type: string + maxLength: 250 + nullable: true + redirect: + description: Target destination domain for redirect + example: foobar.com + type: string + nullable: true + redirectStatusCode: + description: Status code for domain redirect + example: 307 + type: integer + enum: + - null + - 301 + - 302 + - 307 + - 308 + nullable: true + type: object + delete: + description: Remove a domain from a project by passing the domain name and by specifying the project by either passing the project `id` or `name` in the URL. + operationId: removeProjectDomain + security: + - bearerToken: [] + summary: Remove a domain from a project + tags: + - projects + responses: + '200': + description: The domain was succesfully removed from the project + content: + application/json: + schema: + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: The project is currently being transferred + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: domain + description: The project domain name + in: path + required: true + schema: + description: The project domain name + type: string + example: www.example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v10/projects/{idOrName}/domains': + post: + description: 'Add a domain to the project by passing its domain name and by specifying the project by either passing the project `id` or `name` in the URL. If the domain is not yet verified to be used on this project, the request will return `verified = false`, and the domain will need to be verified according to the `verification` challenge via `POST /projects/:idOrName/domains/:domain/verify`. If the domain already exists on the project, the request will fail with a `400` status code.' + operationId: addProjectDomain + security: + - bearerToken: [] + summary: Add a domain to a project + tags: + - projects + responses: + '200': + description: The domain was successfully added to the project + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 307 + - 301 + - 302 + - 308 + gitBranch: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - type + - domain + - value + - reason + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - name + - apexName + - projectId + - verified + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The domain is not valid + You can't set both a git branch and a redirect for the domain + The domain can not be added because the latest production deployment for the project was not successful + The domain redirect is not valid + A domain cannot redirect to itself + You can not set the production branch as a branch for your domain + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + You don't have access to the domain you are adding + '409': + description: |- + The domain is already assigned to another Vercel project + Cannot create project domain since owner already has `domain` on their account + Cannot create project domain if the current verified domain + The project is currently being transferred + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + name: + description: The project domain name + example: www.example.com + type: string + gitBranch: + description: Git branch to link the project domain + example: null + maxLength: 250 + type: string + nullable: true + redirect: + description: Target destination domain for redirect + example: foobar.com + type: string + nullable: true + redirectStatusCode: + description: Status code for domain redirect + example: 307 + type: integer + enum: + - null + - 301 + - 302 + - 307 + - 308 + nullable: true + required: + - name + type: object + '/v9/projects/{idOrName}/domains/{domain}/verify': + post: + description: Attempts to verify a project domain with `verified = false` by checking the correctness of the project domain's `verification` challenge. + operationId: verifyProjectDomain + security: + - bearerToken: [] + summary: Verify project domain + tags: + - projects + responses: + '200': + description: |- + The project domain was verified successfully + Domain is already verified + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 307 + - 301 + - 302 + - 308 + gitBranch: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - type + - domain + - value + - reason + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - name + - apexName + - projectId + - verified + type: object + '400': + description: |- + One of the provided values in the request query is invalid. + There is an existing TXT record on the domain verifying it for another project + The domain does not have a TXT record that attempts to verify the project domain + The TXT record on the domain does not match the expected challenge for the project domain + Project domain is not assigned to project + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier or the project name + type: string + - name: domain + description: The domain name you want to verify + in: path + required: true + schema: + description: The domain name you want to verify + type: string + example: example.com + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v9/projects/{idOrName}/env': + get: + description: Retrieve the environment variables for a given project by passing either the project `id` or `name` in the URL. + operationId: filterProjectEnvs + security: + - bearerToken: [] + summary: Retrieve the environment variables of a project by id or name + tags: + - projects + responses: + '200': + description: The list of environment variables for the given project + content: + application/json: + schema: + oneOf: + - properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - secret + - system + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + system: + type: boolean + type: object + - properties: + envs: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - secret + - system + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + system: + type: boolean + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - envs + - pagination + type: object + - properties: + envs: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - secret + - system + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + system: + type: boolean + type: object + type: array + required: + - envs + type: object + description: The list of environment variables for the given project + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + - name: gitBranch + description: 'If defined, the git branch of the environment variable to filter the results' + in: query + required: false + schema: + description: 'If defined, the git branch of the environment variable to filter the results' + type: string + maxLength: 250 + example: feature-1 + - name: decrypt + description: 'If true, the environment variable value will be decrypted' + in: query + required: false + schema: + description: 'If true, the environment variable value will be decrypted' + type: string + enum: + - 'true' + - 'false' + example: 'true' + deprecated: true + - name: source + description: The source that is calling the endpoint. + in: query + required: false + schema: + description: The source that is calling the endpoint. + type: string + example: 'vercel-cli:pull' + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/projects/{idOrName}/env/{id}': + get: + description: Retrieve the environment variable for a given project. + operationId: getProjectEnv + security: + - bearerToken: [] + summary: Retrieve the decrypted value of an environment variable of a project by id + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - secret + - system + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + - name: id + description: The unique ID for the environment variable to get the decrypted value. + in: path + required: true + schema: + description: The unique ID for the environment variable to get the decrypted value. + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v10/projects/{idOrName}/env': + post: + description: 'Create one ore more environment variables for a project by passing its `key`, `value`, `type` and `target` and by specifying the project by either passing the project `id` or `name` in the URL.' + operationId: createProjectEnv + security: + - bearerToken: [] + summary: Create one or more environment variables + tags: + - projects + responses: + '201': + description: The environment variable was created successfully + content: + application/json: + schema: + properties: + created: + oneOf: + - properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: + type: string + enum: + - system + - secret + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + system: + type: boolean + type: object + - items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: + type: string + enum: + - system + - secret + - encrypted + - plain + - sensitive + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + system: + type: boolean + type: object + type: array + failed: + items: + properties: + error: + properties: + code: + type: string + message: + type: string + key: + type: string + envVarId: + type: string + envVarKey: + type: string + action: + type: string + link: + type: string + value: + oneOf: + - type: string + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: array + gitBranch: + type: string + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + project: + type: string + required: + - code + - message + type: object + required: + - error + type: object + type: array + required: + - created + - failed + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + The environment variable cannot be created because it already exists + Additional permissions are required to create production environment variables + '409': + description: The project is being transfered and creating an environment variable is not possible + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + - name: upsert + description: Allow override of environment variable if it already exists + in: query + required: false + schema: + description: Allow override of environment variable if it already exists + type: string + example: 'true' + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + required: + - key + - value + - type + - target + properties: + key: + description: The name of the environment variable + type: string + example: API_URL + value: + description: The value of the environment variable + type: string + example: 'https://api.vercel.com' + type: + description: The type of environment variable + type: string + enum: + - system + - secret + - encrypted + - plain + - sensitive + example: plain + target: + description: The target environment of the environment variable + type: array + items: + enum: + - production + - preview + - development + example: + - production + - preview + gitBranch: + description: The git branch of the environment variable + type: string + maxLength: 250 + example: feature-1 + nullable: true + - type: array + items: + type: object + required: + - key + - value + - type + - target + properties: + key: + description: The name of the environment variable + type: string + example: API_URL + value: + description: The value of the environment variable + type: string + example: 'https://api.vercel.com' + type: + description: The type of environment variable + type: string + enum: + - system + - secret + - encrypted + - plain + - sensitive + example: plain + target: + description: The target environment of the environment variable + type: array + items: + enum: + - production + - preview + - development + example: + - production + - preview + gitBranch: + description: The git branch of the environment variable + type: string + maxLength: 250 + example: feature-1 + nullable: true + '/v9/projects/{idOrName}/env/{id}': + delete: + description: Delete a specific environment variable for a given project by passing the environment variable identifier and either passing the project `id` or `name` in the URL. + operationId: removeProjectEnv + security: + - bearerToken: [] + summary: Remove an environment variable + tags: + - projects + responses: + '200': + description: The environment variable was successfully removed + content: + application/json: + schema: + oneOf: + - items: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: + type: string + enum: + - system + - encrypted + - plain + - sensitive + - secret + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + type: array + - properties: + system: + type: boolean + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: + type: string + enum: + - system + - encrypted + - plain + - sensitive + - secret + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + - properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + - preview + - development + type: + type: string + enum: + - system + - encrypted + - plain + - sensitive + - secret + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: The project is being transfered and removing an environment variable is not possible + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + - name: id + description: The unique environment variable identifier + in: path + required: true + schema: + description: The unique environment variable identifier + type: string + example: XMbOEya1gUUO1ir4 + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + patch: + description: Edit a specific environment variable for a given project by passing the environment variable identifier and either passing the project `id` or `name` in the URL. + operationId: editProjectEnv + security: + - bearerToken: [] + summary: Edit an environment variable + tags: + - projects + responses: + '200': + description: The environment variable was successfully edited + content: + application/json: + schema: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + - preview + - development + type: + type: string + enum: + - system + - encrypted + - plain + - sensitive + - secret + id: + type: string + key: + type: string + value: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - type + - storeId + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - type + - storeId + type: object + decrypted: + type: boolean + description: Whether `value` is decrypted. + required: + - type + - key + - value + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '409': + description: The project is being transfered and removing an environment variable is not possible + parameters: + - name: idOrName + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + - name: id + description: The unique environment variable identifier + in: path + required: true + schema: + description: The unique environment variable identifier + type: string + example: XMbOEya1gUUO1ir4 + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + key: + description: The name of the environment variable + type: string + example: GITHUB_APP_ID + target: + description: The target environment of the environment variable + type: array + items: + enum: + - production + - preview + - development + example: + - preview + gitBranch: + description: The git branch of the environment variable + type: string + maxLength: 250 + example: feature-1 + nullable: true + type: + description: The type of environment variable + type: string + enum: + - system + - secret + - encrypted + - plain + - sensitive + example: plain + value: + description: The value of the environment variable + type: string + example: bkWIjbnxcvo78 diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/secrets.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/secrets.yaml new file mode 100644 index 0000000..7bf0949 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/secrets.yaml @@ -0,0 +1,533 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - secrets + description: secrets +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + secrets: + id: vercel.secrets.secrets + name: secrets + title: Secrets + methods: + get_secrets: + operation: + $ref: '#/paths/~1v3~1secrets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.secrets + _get_secrets: + operation: + $ref: '#/paths/~1v3~1secrets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_secret: + operation: + $ref: '#/paths/~1v2~1secrets~1{name}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + rename_secret: + operation: + $ref: '#/paths/~1v2~1secrets~1{name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + get_secret: + operation: + $ref: '#/paths/~1v3~1secrets~1{idOrName}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_secret: + operation: + $ref: '#/paths/~1v2~1secrets~1{idOrName}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/secrets/methods/get_secret' + - $ref: '#/components/x-stackQL-resources/secrets/methods/get_secrets' + insert: + - $ref: '#/components/x-stackQL-resources/secrets/methods/create_secret' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/secrets/methods/delete_secret' +paths: + /v3/secrets: + get: + description: Retrieves the active Vercel secrets for the authenticated user or team. By default it returns 20 secrets. The rest can be retrieved using the pagination options. The body will contain an entry for each secret. + operationId: getSecrets + security: + - bearerToken: [] + summary: List secrets + tags: + - secrets + responses: + '200': + description: Successful response retrieving a list of secrets. + content: + application/json: + schema: + properties: + secrets: + items: + properties: + created: + type: string + format: date-time + description: The date when the secret was created. + example: '2021-02-10T13:11:49.180Z' + name: + type: string + description: The name of the secret. + example: my-api-key + teamId: + nullable: true + type: string + description: The unique identifier of the team the secret was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + uid: + type: string + description: The unique identifier of the secret. + example: sec_XCG7t7AIHuO2SBA8667zNUiM + userId: + type: string + description: The unique identifier of the user who created the secret. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + value: + type: string + description: The value of the secret. + createdAt: + type: number + description: Timestamp for when the secret was created. + example: 1609492210000 + projectId: + type: string + description: The unique identifier of the project which the secret belongs to. + example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE + decryptable: + type: boolean + description: Indicates whether the secret value can be decrypted after it has been created. + example: true + required: + - created + - name + - uid + type: object + description: Data representing a secret. + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - secrets + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: id + description: Filter out secrets based on comma separated secret ids. + in: query + schema: + description: Filter out secrets based on comma separated secret ids. + type: string + example: 'sec_RKc5iV0rV3ZSrFrHiruRno7k,sec_fGc5iV0rV3ZSrFrHiruRnouQ' + deprecated: true + - name: projectId + description: Filter out secrets that belong to a project. + in: query + schema: + description: Filter out secrets that belong to a project. + type: string + example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE + deprecated: true + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v2/secrets/{name}': + post: + description: Allows to create a new secret. + operationId: createSecret + security: + - bearerToken: [] + summary: Create a new secret + tags: + - secrets + responses: + '200': + description: Successful response showing the created secret. + content: + application/json: + schema: + properties: + value: + type: object + properties: + type: + type: string + enum: + - Buffer + data: + type: array + items: + type: number + created: + type: string + format: date-time + description: The date when the secret was created. + example: '2021-02-10T13:11:49.180Z' + name: + type: string + description: The name of the secret. + example: my-api-key + teamId: + nullable: true + type: string + description: The unique identifier of the team the secret was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + uid: + type: string + description: The unique identifier of the secret. + example: sec_XCG7t7AIHuO2SBA8667zNUiM + userId: + type: string + description: The unique identifier of the user who created the secret. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + createdAt: + type: number + description: Timestamp for when the secret was created. + example: 1609492210000 + projectId: + type: string + description: The unique identifier of the project which the secret belongs to. + example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE + decryptable: + type: boolean + description: Indicates whether the secret value can be decrypted after it has been created. + example: true + required: + - value + - created + - name + - uid + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '402': + description: |- + The account was soft-blocked for an unhandled reason. + The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + parameters: + - name: name + description: The name of the secret. + in: path + required: true + schema: + type: string + description: The name of the secret. + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + required: + - name + - value + properties: + name: + description: The name of the secret (max 100 characters). + type: string + example: my-api-key + maximum: 100 + value: + description: The value of the new secret. + type: string + example: some secret value + decryptable: + description: Whether the secret value can be decrypted after it has been created. + type: boolean + example: true + projectId: + description: Associate a secret to a project. + type: string + example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE + deprecated: true + patch: + description: Enables to edit the name of a secret. The name has to be unique to the user or team’s secrets. + operationId: renameSecret + security: + - bearerToken: [] + summary: Change secret name + tags: + - secrets + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + uid: + type: string + name: + type: string + created: + type: string + format: date-time + oldName: + type: string + required: + - uid + - name + - created + - oldName + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: name + description: The name of the secret. + in: path + required: true + schema: + description: The name of the secret. + type: string + example: my-api-key + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + required: + - name + properties: + name: + description: The name of the new secret. + type: string + example: my-api-key + maximum: 100 + '/v3/secrets/{idOrName}': + get: + description: Retrieves the information for a specific secret by passing either the secret id or name in the URL. + operationId: getSecret + security: + - bearerToken: [] + summary: Get a single secret + tags: + - secrets + responses: + '200': + description: Successful response retrieving a secret. + content: + application/json: + schema: + properties: + created: + type: string + format: date-time + description: The date when the secret was created. + example: '2021-02-10T13:11:49.180Z' + name: + type: string + description: The name of the secret. + example: my-api-key + teamId: + nullable: true + type: string + description: The unique identifier of the team the secret was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + uid: + type: string + description: The unique identifier of the secret. + example: sec_XCG7t7AIHuO2SBA8667zNUiM + userId: + type: string + description: The unique identifier of the user who created the secret. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + value: + type: string + description: The value of the secret. + createdAt: + type: number + description: Timestamp for when the secret was created. + example: 1609492210000 + projectId: + type: string + description: The unique identifier of the project which the secret belongs to. + example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE + decryptable: + type: boolean + description: Indicates whether the secret value can be decrypted after it has been created. + example: true + required: + - created + - name + - uid + type: object + description: Data representing a secret. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + parameters: + - name: idOrName + description: The name or the unique identifier to which the secret belongs to. + in: path + required: true + schema: + description: The name or the unique identifier to which the secret belongs to. + type: string + example: sec_RKc5iV0rV3ZSrFrHiruRno7k + - name: decrypt + description: Whether to try to decrypt the value of the secret. Only works if `decryptable` has been set to `true` when the secret was created. + in: query + required: false + schema: + description: Whether to try to decrypt the value of the secret. Only works if `decryptable` has been set to `true` when the secret was created. + type: string + enum: + - 'true' + - 'false' + example: 'true' + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v2/secrets/{idOrName}': + delete: + description: This deletes the user or team’s secret defined in the URL. + operationId: deleteSecret + security: + - bearerToken: [] + summary: Delete a secret + tags: + - secrets + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + uid: + type: string + description: The unique identifier of the deleted secret. + example: sec_XCG7t7AIHuO2SBA8667zNUiM + name: + type: string + description: The name of the deleted secret. + example: my-api-key + created: + type: number + description: The date when the secret was created. + example: '2021-02-10T13:11:49.180Z' + required: + - uid + - name + - created + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: idOrName + description: The name or the unique identifier to which the secret belongs to. + in: path + required: true + schema: + description: The name or the unique identifier to which the secret belongs to. + type: string + example: sec_RKc5iV0rV3ZSrFrHiruRno7k + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/teams.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/teams.yaml new file mode 100644 index 0000000..c6e8fb7 --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/teams.yaml @@ -0,0 +1,3140 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - teams + description: teams +components: + schemas: + Team: + type: object + description: Data representing a Team. + properties: + id: + type: string + description: The Team's unique identifier. + example: team_nllPyCtREAqxxdyFKbbMDlxd + slug: + type: string + description: 'The Team''s slug, which is unique across the Vercel platform.' + example: my-team + name: + nullable: true + type: string + description: 'Name associated with the Team account, or `null` if none has been provided.' + example: My Team + avatar: + nullable: true + type: string + description: The ID of the file used as avatar for this Team. + example: 6eb07268bcfadd309905ffb1579354084c24655c + additionalProperties: true + TeamLimited: + properties: + limited: + type: boolean + description: 'Property indicating that this Team data contains only limited information, due to the authentication token missing privileges to read the full Team data. Re-login with the Team''s configured SAML Single Sign-On provider in order to upgrade the authentication token with the necessary privileges.' + saml: + properties: + connection: + properties: + type: + type: string + description: 'The Identity Provider "type", for example Okta.' + example: OktaSAML + status: + type: string + description: Current status of the connection. + example: linked + state: + type: string + description: Current state of the connection. + example: active + connectedAt: + type: number + description: Timestamp (in milliseconds) of when the configuration was connected. + example: 1611796915677 + lastReceivedWebhookEvent: + type: number + description: Timestamp (in milliseconds) of when the last webhook event was received from WorkOS. + example: 1611796915677 + required: + - type + - status + - state + - connectedAt + type: object + description: Information for the SAML Single Sign-On configuration. + directory: + properties: + type: + type: string + description: 'The Identity Provider "type", for example Okta.' + example: OktaSAML + status: + type: string + description: Current status of the connection. + example: linked + state: + type: string + description: Current state of the connection. + example: active + connectedAt: + type: number + description: Timestamp (in milliseconds) of when the configuration was connected. + example: 1611796915677 + lastReceivedWebhookEvent: + type: number + description: Timestamp (in milliseconds) of when the last webhook event was received from WorkOS. + example: 1611796915677 + required: + - type + - status + - state + - connectedAt + type: object + description: Information for the SAML Single Sign-On configuration. + enforced: + type: boolean + description: 'When `true`, interactions with the Team **must** be done with an authentication token that has been authenticated with the Team''s SAML Single Sign-On provider.' + required: + - enforced + type: object + description: 'When "Single Sign-On (SAML)" is configured, this object contains information that allows the client-side to identify whether or not this Team has SAML enforced.' + id: + type: string + description: The Team's unique identifier. + example: team_nllPyCtREAqxxdyFKbbMDlxd + slug: + type: string + description: 'The Team''s slug, which is unique across the Vercel platform.' + example: my-team + name: + nullable: true + type: string + description: 'Name associated with the Team account, or `null` if none has been provided.' + example: My Team + avatar: + nullable: true + type: string + description: The ID of the file used as avatar for this Team. + example: 6eb07268bcfadd309905ffb1579354084c24655c + membership: + oneOf: + - properties: + confirmed: + type: boolean + confirmedAt: + type: number + accessRequestedAt: + type: number + role: + type: string + enum: + - OWNER + - MEMBER + - VIEWER + - DEVELOPER + - BILLING + - CONTRIBUTOR + teamId: + type: string + uid: + type: string + createdAt: + type: number + created: + type: number + joinedFrom: + properties: + origin: + type: string + enum: + - link + - saml + - mail + - import + - teams + - github + - gitlab + - bitbucket + - dsync + - feedback + - organization-teams + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + required: + - confirmed + - confirmedAt + - role + - uid + - createdAt + - created + type: object + description: The membership of the authenticated User in relation to the Team. + - properties: + confirmed: + type: boolean + confirmedAt: + type: number + accessRequestedAt: + type: number + role: + type: string + enum: + - OWNER + - MEMBER + - VIEWER + - DEVELOPER + - BILLING + - CONTRIBUTOR + teamId: + type: string + uid: + type: string + createdAt: + type: number + created: + type: number + joinedFrom: + properties: + origin: + type: string + enum: + - link + - saml + - mail + - import + - teams + - github + - gitlab + - bitbucket + - dsync + - feedback + - organization-teams + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + required: + - confirmed + - accessRequestedAt + - role + - uid + - createdAt + - created + type: object + description: The membership of the authenticated User in relation to the Team. + created: + type: string + description: Will remain undocumented. Remove in v3 API. + createdAt: + type: number + description: UNIX timestamp (in milliseconds) when the Team was created. + example: 1630748523395 + required: + - limited + - id + - slug + - name + - avatar + - membership + - created + - createdAt + type: object + description: 'A limited form of data representing a Team, due to the authentication token missing privileges to read the full Team data.' + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + members: + id: vercel.teams.members + name: members + title: Members + methods: + get_team_members: + operation: + $ref: '#/paths/~1v2~1teams~1{teamId}~1members/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.members + _get_team_members: + operation: + $ref: '#/paths/~1v2~1teams~1{teamId}~1members/get' + response: + mediaType: application/json + openAPIDocKey: '200' + invite_user_to_team: + operation: + $ref: '#/paths/~1v1~1teams~1{teamId}~1members/post' + response: + mediaType: application/json + openAPIDocKey: '200' + update_team_member: + operation: + $ref: '#/paths/~1v1~1teams~1{teamId}~1members~1{uid}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + remove_team_member: + operation: + $ref: '#/paths/~1v1~1teams~1{teamId}~1members~1{uid}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/members/methods/get_team_members' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/members/methods/remove_team_member' + request: + id: vercel.teams.request + name: request + title: Request + methods: + request_access_to_team: + operation: + $ref: '#/paths/~1v1~1teams~1{teamId}~1request/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get_team_access_request: + operation: + $ref: '#/paths/~1v1~1teams~1{teamId}~1request~1{userId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/request/methods/get_team_access_request' + insert: [] + update: [] + delete: [] + teams: + id: vercel.teams.teams + name: teams + title: Teams + methods: + join_team: + operation: + $ref: '#/paths/~1v1~1teams~1{teamId}~1members~1teams~1join/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get_team: + operation: + $ref: '#/paths/~1v2~1teams~1{teamId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + patch_team: + operation: + $ref: '#/paths/~1v2~1teams~1{teamId}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + get_teams: + operation: + $ref: '#/paths/~1v2~1teams/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.teams + _get_teams: + operation: + $ref: '#/paths/~1v2~1teams/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_team: + operation: + $ref: '#/paths/~1v1~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_team: + operation: + $ref: '#/paths/~1v1~1teams~1{teamId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/teams/methods/get_team' + - $ref: '#/components/x-stackQL-resources/teams/methods/get_teams' + insert: + - $ref: '#/components/x-stackQL-resources/teams/methods/create_team' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/teams/methods/delete_team' + invites: + id: vercel.teams.invites + name: invites + title: Invites + methods: + delete_team_invite_code: + operation: + $ref: '#/paths/~1v1~1teams~1{teamId}~1invites~1{inviteId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/invites/methods/delete_team_invite_code' +paths: + '/v2/teams/{teamId}/members': + get: + description: Get a paginated list of team members for the provided team. + operationId: getTeamMembers + security: + - bearerToken: [] + summary: List team members + tags: + - teams + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + members: + items: + properties: + avatar: + type: string + description: ID of the file for the Avatar of this member. + example: 123a6c5209bc3778245d011443644c8d27dc2c50 + confirmed: + type: boolean + description: Boolean that indicates if this member was confirmed by an owner. + example: true + email: + type: string + description: The email of this member. + example: jane.doe@example.com + github: + properties: + login: + type: string + type: object + description: Information about the GitHub account for this user. + gitlab: + properties: + login: + type: string + type: object + description: Information about the GitLab account of this user. + bitbucket: + properties: + login: + type: string + type: object + description: Information about the Bitbucket account of this user. + role: + type: string + enum: + - OWNER + - MEMBER + - DEVELOPER + - VIEWER + - BILLING + - CONTRIBUTOR + description: Role of this user in the team. + example: OWNER + uid: + type: string + description: The ID of this user. + example: zTuNVUXEAvvnNN3IaqinkyMw + username: + type: string + description: The unique username of this user. + example: jane-doe + name: + type: string + description: The name of this user. + example: Jane Doe + createdAt: + type: number + description: Timestamp in milliseconds when this member was added. + example: 1588720733602 + accessRequestedAt: + type: number + description: Timestamp in milliseconds for when this team member was accepted by an owner. + example: 1588820733602 + joinedFrom: + properties: + origin: + type: string + enum: + - mail + - link + - import + - teams + - github + - gitlab + - bitbucket + - saml + - dsync + - feedback + - organization-teams + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + description: Map with information about the members origin if they joined by requesting access. + projects: + items: + properties: + id: + type: string + name: + type: string + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_VIEWER + type: object + description: Array of project memberships + type: array + description: Array of project memberships + required: + - confirmed + - email + - role + - uid + - username + - createdAt + type: object + type: array + emailInviteCodes: + items: + properties: + id: + type: string + email: + type: string + role: + type: string + enum: + - OWNER + - MEMBER + - DEVELOPER + - VIEWER + - BILLING + - CONTRIBUTOR + isDSyncUser: + type: boolean + createdAt: + type: number + expired: + type: boolean + projects: + additionalProperties: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_VIEWER + type: object + required: + - id + - isDSyncUser + type: object + type: array + pagination: + properties: + hasNext: + type: boolean + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - hasNext + - count + - next + - prev + type: object + required: + - members + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: No team was found. + parameters: + - name: teamId + description: ID of the Team. + in: path + required: true + schema: + type: string + description: ID of the Team. + - name: limit + description: Limit how many teams should be returned + in: query + required: false + schema: + description: Limit how many teams should be returned + example: 20 + type: number + - name: since + description: Timestamp in milliseconds to only include members added since then. + in: query + required: false + schema: + description: Timestamp in milliseconds to only include members added since then. + example: 1540095775951 + type: number + - name: until + description: Timestamp in milliseconds to only include members added until then. + in: query + required: false + schema: + description: Timestamp in milliseconds to only include members added until then. + example: 1540095775951 + type: number + - name: search + description: 'Search team members by their name, username, and email.' + in: query + required: false + schema: + description: 'Search team members by their name, username, and email.' + type: string + - name: role + description: Only return members with the specified team role. + in: query + required: false + schema: + description: Only return members with the specified team role. + example: OWNER + type: string + enum: + - OWNER + - MEMBER + - DEVELOPER + - VIEWER + - BILLING + - CONTRIBUTOR + - name: excludeProject + description: Exclude members who belong to the specified project. + in: query + required: false + schema: + description: Exclude members who belong to the specified project. + type: string + - name: eligibleMembersForProjectId + description: Include team members who are eligible to be members of the specified project. + in: query + required: false + schema: + description: Include team members who are eligible to be members of the specified project. + type: string + '/v1/teams/{teamId}/members': + post: + description: 'Invite a user to join the team specified in the URL. The authenticated user needs to be an `OWNER` in order to successfully invoke this endpoint. The user can be specified with an email or an ID. If both email and ID are provided, ID will take priority.' + operationId: inviteUserToTeam + security: + - bearerToken: [] + summary: Invite a user + tags: + - teams + responses: + '200': + description: The member was successfully added to the team + content: + application/json: + schema: + oneOf: + - properties: + uid: + type: string + description: The ID of the invited user + example: kr1PsOIzqEL5Xg6M4VZcZosf + username: + type: string + description: The username of the invited user + example: john-doe + email: + type: string + description: The email of the invited user. Not included if the user was invited via their UID. + example: john@user.co + role: + type: string + enum: + - OWNER + - MEMBER + - VIEWER + - DEVELOPER + - BILLING + - CONTRIBUTOR + description: The role used for the invitation + example: MEMBER + required: + - uid + - username + - email + - role + type: object + description: The member was successfully added to the team + - properties: + uid: + type: string + username: + type: string + role: + type: string + enum: + - OWNER + - MEMBER + - VIEWER + - DEVELOPER + - BILLING + - CONTRIBUTOR + required: + - uid + - username + - role + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The user already requested access to the team + Hobby teams are not allowed to add seats. + The team reached the maximum allowed amount of members + '401': + description: '' + '403': + description: |- + You do not have permission to access this resource. + The authenticated user must be a team owner to perform the action + '404': + description: The team was not found + parameters: + - name: teamId + description: ID of the Team. + in: path + required: true + schema: + type: string + description: ID of the Team. + requestBody: + content: + application/json: + schema: + type: object + properties: + uid: + type: string + description: The id of the user to invite + example: kr1PsOIzqEL5Xg6M4VZcZosf + email: + type: string + format: email + description: The email address of the user to invite + example: john@example.com + role: + type: string + enum: + - OWNER + - MEMBER + - VIEWER + - DEVELOPER + - BILLING + - CONTRIBUTOR + default: + - MEMBER + - VIEWER + description: The role of the user to invite + example: + - MEMBER + - VIEWER + projects: + type: array + items: + type: object + additionalProperties: false + required: + - role + - projectId + properties: + projectId: + type: string + maxLength: 256 + example: prj_ndlgr43fadlPyCtREAqxxdyFK + description: The ID of the project. + role: + type: string + enum: + - ADMIN + - PROJECT_VIEWER + - PROJECT_DEVELOPER + example: ADMIN + description: Sets the project roles for the invited user + '/v1/teams/{teamId}/request': + post: + description: Request access to a team as a member. An owner has to approve the request. Only 10 users can request access to a team at the same time. + operationId: requestAccessToTeam + security: + - bearerToken: [] + summary: Request access to a team + tags: + - teams + responses: + '200': + description: Successfuly requested access to the team. + content: + application/json: + schema: + properties: + teamSlug: + type: string + teamName: + type: string + confirmed: + type: boolean + joinedFrom: + properties: + origin: + type: string + enum: + - import + - teams + - github + - gitlab + - bitbucket + - feedback + - organization-teams + - mail + - link + - saml + - dsync + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + accessRequestedAt: + type: number + github: + nullable: true + properties: + login: + type: string + type: object + gitlab: + nullable: true + properties: + login: + type: string + type: object + bitbucket: + nullable: true + properties: + login: + type: string + type: object + required: + - teamSlug + - teamName + - github + - gitlab + - bitbucket + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: The team was not found. + parameters: + - name: teamId + description: ID of the Team. + in: path + required: true + schema: + type: string + description: ID of the Team. + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - joinedFrom + properties: + joinedFrom: + type: object + additionalProperties: false + required: + - origin + properties: + origin: + type: string + enum: + - import + - teams + - github + - gitlab + - bitbucket + - feedback + - organization-teams + description: The origin of the request. + example: github + commitId: + type: string + description: The commit sha if the origin is a git provider. + example: f498d25d8bd654b578716203be73084b31130cd7 + repoId: + type: string + description: The ID of the repository for the given Git provider. + example: '67753070' + repoPath: + type: string + description: The path to the repository for the given Git provider. + example: jane-doe/example + gitUserId: + description: The ID of the Git account of the user who requests access. + example: 103053343 + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + description: The login name for the Git account of the user who requests access. + example: jane-doe + '/v1/teams/{teamId}/request/{userId}': + get: + description: 'Check the status of a join request. It''ll respond with a 404 if the request has been declined. If no `userId` path segment was provided, this endpoint will instead return the status of the authenticated user.' + operationId: getTeamAccessRequest + security: + - bearerToken: [] + summary: Get access request status + tags: + - teams + responses: + '200': + description: Successfully + content: + application/json: + schema: + properties: + teamSlug: + type: string + description: The slug of the team. + example: my-team + teamName: + type: string + description: The name of the team. + example: My Team + confirmed: + type: boolean + description: 'Current status of the membership. Will be `true` if confirmed, if pending it''ll be `false`.' + example: false + joinedFrom: + properties: + origin: + type: string + enum: + - mail + - link + - import + - teams + - github + - gitlab + - bitbucket + - saml + - dsync + - feedback + - organization-teams + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + description: A map that describes the origin from where the user joined. + accessRequestedAt: + type: number + description: Timestamp in milliseconds when the user requested access to the team. + example: 1588720733602 + github: + nullable: true + properties: + login: + type: string + type: object + description: Map of the connected GitHub account. + gitlab: + nullable: true + properties: + login: + type: string + type: object + description: Map of the connected GitLab account. + bitbucket: + nullable: true + properties: + login: + type: string + type: object + description: Map of the connected Bitbucket account. + required: + - teamSlug + - teamName + - confirmed + - joinedFrom + - accessRequestedAt + - github + - gitlab + - bitbucket + type: object + '400': + description: |- + One of the provided values in the request query is invalid. + User is already a confirmed member of the team and did not request access. Only visible when the authenticated user does have access to the team. + '403': + description: You do not have permission to access this resource. + '404': + description: |- + The provided user doesn't have a membership. + Team was not found. + parameters: + - name: teamId + description: ID of the Team. + in: path + required: true + schema: + type: string + description: ID of the Team. + - name: userId + description: User ID. + in: path + required: true + schema: + type: string + description: User ID. + '/v1/teams/{teamId}/members/teams/join': + post: + description: Join a team with a provided invite code or team ID. + operationId: joinTeam + security: + - bearerToken: [] + summary: Join a team + tags: + - teams + responses: + '200': + description: Successfully joined a team. + content: + application/json: + schema: + properties: + teamId: + type: string + description: The ID of the team the user joined. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + slug: + type: string + description: The slug of the team the user joined. + example: my-team + name: + type: string + description: The name of the team the user joined. + example: My Team + from: + type: string + description: The origin of how the user joined. + example: email + required: + - teamId + - slug + - name + - from + type: object + description: Successfully joined a team. + '400': + description: |- + One of the provided values in the request body is invalid. + Reached the max. amount of team members. + '401': + description: '' + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: Team not found. + parameters: + - name: teamId + description: ID of the Team. + in: path + required: true + schema: + type: string + description: ID of the Team. + requestBody: + content: + application/json: + schema: + type: object + properties: + inviteCode: + type: string + description: The invite code to join the team. + example: fisdh38aejkeivn34nslfore9vjtn4ls + teamId: + example: team_3oNwMKqLHqEBh02CTPsrbNbe + description: The team ID. + type: string + '/v1/teams/{teamId}/members/{uid}': + patch: + description: 'Update the membership of a Team Member on the Team specified by `teamId`, such as changing the _role_ of the member, or confirming a request to join the Team for an unconfirmed member. The authenticated user must be an `OWNER` of the Team.' + operationId: updateTeamMember + security: + - bearerToken: [] + summary: Update a Team Member + tags: + - teams + responses: + '200': + description: Successfully updated the membership. + content: + application/json: + schema: + properties: + id: + type: string + description: ID of the team. + required: + - id + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + Cannot disconnect SSO from a Team member that does not have a SSO connection. + Cannot confirm a member that is already confirmed. + Cannot confirm a member that did not request access. + '401': + description: 'Team members can only be updated by an owner, or by the authenticated user if they are only disconnecting their SAML connection to the Team.' + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: |- + The provided user is not part of this team. + A user with the specified ID does not exist. + Team not found. + '500': + description: '' + parameters: + - name: teamId + description: ID of the Team. + in: path + required: true + schema: + type: string + description: ID of the Team. + - name: uid + description: The ID of the member. + in: path + required: true + schema: + type: string + description: The ID of the member. + example: ndfasllgPyCtREAqxxdyFKb + requestBody: + content: + application/json: + schema: + type: object + properties: + confirmed: + type: boolean + enum: + - true + description: Accept a user who requested access to the team. + example: true + role: + type: string + description: The role in the team of the member. + default: + - MEMBER + - VIEWER + example: + - MEMBER + - VIEWER + projects: + type: array + items: + type: object + additionalProperties: false + required: + - role + - projectId + properties: + projectId: + type: string + maxLength: 256 + example: prj_ndlgr43fadlPyCtREAqxxdyFK + description: The ID of the project. + role: + type: string + enum: + - ADMIN + - PROJECT_VIEWER + - PROJECT_DEVELOPER + - null + example: ADMIN + description: The project role of the member that will be added. \"null\" will remove this project level role. + nullable: true + joinedFrom: + additionalProperties: false + type: object + properties: + ssoUserId: + type: 'null' + delete: + description: 'Remove a Team Member from the Team, or dismiss a user that requested access, or leave a team.' + operationId: removeTeamMember + security: + - bearerToken: [] + summary: Remove a Team Member + tags: + - teams + responses: + '200': + description: Successfully removed a member of the team. + content: + application/json: + schema: + properties: + id: + type: string + description: ID of the team. + newDefaultTeamIdError: + type: boolean + required: + - id + - newDefaultTeamIdError + type: object + '400': + description: |- + One of the provided values in the request query is invalid. + Cannot leave the team as the only owner. + '401': + description: '' + '403': + description: |- + You do not have permission to access this resource. + Not authorized to update the team. + '404': + description: |- + A user with the specified ID does not exist. + No team found. + parameters: + - name: teamId + description: ID of the Team. + in: path + required: true + schema: + type: string + description: ID of the Team. + - name: uid + description: The user ID of the member. + in: path + required: true + schema: + type: string + description: The user ID of the member. + example: ndlgr43fadlPyCtREAqxxdyFK + - name: newDefaultTeamId + description: The ID of the team to set as the new default team for the Northstar user. + in: query + required: false + schema: + type: string + description: The ID of the team to set as the new default team for the Northstar user. + example: team_nllPyCtREAqxxdyFKbbMDlxd + '/v2/teams/{teamId}': + get: + description: Get information for the Team specified by the `teamId` parameter. + operationId: getTeam + security: + - bearerToken: [] + summary: Get a Team + tags: + - teams + responses: + '200': + description: The requested team + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: |- + You do not have permission to access this resource. + Not authorized to access the team. + '404': + description: Team was not found. + parameters: + - name: slug + in: query + schema: + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: path + name: teamId + schema: + type: string + required: true + patch: + description: Update the information of a Team specified by the `teamId` parameter. The request body should contain the information that will be updated on the Team. + operationId: patchTeam + security: + - bearerToken: [] + summary: Update a Team + tags: + - teams + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Team' + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '402': + description: '' + '403': + description: |- + You do not have permission to access this resource. + Not authorized to update the team. Must be an OWNER. + '404': + description: Team was not found. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: path + name: teamId + schema: + type: string + required: true + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + avatar: + type: string + format: regex + regex: '^[0-9a-f]{40}$' + description: The hash value of an uploaded image. + description: + type: string + maxLength: 140 + example: Our mission is to make cloud computing accessible to everyone + description: A short text that describes the team. + emailDomain: + type: string + format: regex + regex: '\\b((?=[a-z0-9-]{1,63}\\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,63}\\b' + example: example.com + nullable: true + name: + type: string + maxLength: 256 + example: My Team + description: The name of the team. + previewDeploymentSuffix: + type: string + format: hostname + example: example.dev + description: Suffix that will be used for all preview deployments. + nullable: true + regenerateInviteCode: + type: boolean + example: true + description: Create a new invite code and replace the current one. + saml: + type: object + additionalProperties: false + properties: + enforced: + type: boolean + example: true + description: Require that members of the team use SAML Single Sign-On. + roles: + type: object + additionalProperties: + type: string + enum: + - OWNER + - MEMBER + - VIEWER + - DEVELOPER + - BILLING + - CONTRIBUTOR + slug: + type: string + example: my-team + description: A new slug for the team. + enablePreviewFeedback: + type: string + example: 'on' + description: 'Enable preview comments: one of on, off or default.' + sensitiveEnvironmentVariablePolicy: + type: string + example: 'on' + description: 'Sensitive environment variable policy: one of on, off or default.' + migrateExistingEnvVariablesToSensitive: + type: boolean + example: false + description: Runs a task that migrates all existing environment variables to sensitive environment variables. + remoteCaching: + type: object + description: Whether or not remote caching is enabled for the team + additionalProperties: false + properties: + enabled: + type: boolean + example: true + description: Enable or disable remote caching for the team. + hideIpAddresses: + type: boolean + example: false + description: Display or hide IP addresses in Monitoring queries. + /v2/teams: + get: + description: Get a paginated list of all the Teams the authenticated User is a member of. + operationId: getTeams + security: + - bearerToken: [] + summary: List all teams + tags: + - teams + responses: + '200': + description: A paginated list of teams. + content: + application/json: + schema: + properties: + teams: + items: + oneOf: + - $ref: '#/components/schemas/Team' + - $ref: '#/components/schemas/TeamLimited' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - teams + - pagination + type: object + description: A paginated list of teams. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: limit + description: Maximum number of Teams which may be returned. + in: query + schema: + description: Maximum number of Teams which may be returned. + example: 20 + type: number + - name: since + description: Timestamp (in milliseconds) to only include Teams created since then. + in: query + schema: + description: Timestamp (in milliseconds) to only include Teams created since then. + example: 1540095775951 + type: number + - name: until + description: Timestamp (in milliseconds) to only include Teams created until then. + in: query + schema: + description: Timestamp (in milliseconds) to only include Teams created until then. + example: 1540095775951 + type: number + /v1/teams: + post: + description: 'Create a new Team under your account. You need to send a POST request with the desired Team slug, and optionally the Team name.' + operationId: createTeam + security: + - bearerToken: [] + summary: Create a Team + tags: + - teams + responses: + '200': + description: The team was created successfully + content: + application/json: + schema: + properties: + id: + type: string + description: Id of the created team + example: team_nLlpyC6RE1qxqglFKbrMxlud + slug: + type: string + billing: + properties: + currency: + type: string + enum: + - usd + - eur + cancelation: + nullable: true + type: number + period: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + contract: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + plan: + type: string + enum: + - hobby + - pro + - enterprise + platform: + type: string + enum: + - stripe + - stripeTestMode + orbCustomerId: + type: string + syncedAt: + type: number + programType: + type: string + enum: + - startup + - agency + trial: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + email: + nullable: true + type: string + tax: + nullable: true + properties: + type: + type: string + id: + type: string + required: + - type + - id + type: object + language: + nullable: true + type: string + address: + nullable: true + properties: + line1: + type: string + line2: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + state: + type: string + required: + - line1 + type: object + name: + nullable: true + type: string + invoiceItems: + nullable: true + properties: + monitoring: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + pro: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + enterprise: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + analytics: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + concurrentBuilds: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + passwordProtection: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + previewDeploymentSuffix: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + saml: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + teamSeats: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + webAnalytics: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + analyticsUsage: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + artifacts: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + bandwidth: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + cronJobInvocation: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + dataCacheRead: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + dataCacheRevalidation: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + dataCacheWrite: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + edgeConfigRead: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + edgeConfigWrite: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + edgeFunctionExecutionUnits: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + edgeMiddlewareInvocations: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + monitoringMetric: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresComputeTime: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresDatabase: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresDataStorage: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresDataTransfer: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresWrittenData: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + serverlessFunctionExecution: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + sourceImages: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + storageRedisTotalBandwidthInBytes: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + storageRedisTotalCommands: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + storageRedisTotalDailyAvgStorageInBytes: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + storageRedisTotalDatabases: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + webAnalyticsEvent: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + type: object + invoiceSettings: + properties: + footer: + type: string + type: object + subscriptions: + nullable: true + items: + properties: + id: + type: string + trial: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + period: + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + frequency: + properties: + interval: + type: string + enum: + - month + - day + - week + - year + intervalCount: + type: number + required: + - interval + - intervalCount + type: object + discount: + nullable: true + properties: + id: + type: string + coupon: + properties: + id: + type: string + name: + nullable: true + type: string + amountOff: + nullable: true + type: number + percentageOff: + nullable: true + type: number + durationInMonths: + nullable: true + type: number + duration: + type: string + enum: + - forever + - repeating + - once + required: + - id + - name + - amountOff + - percentageOff + - durationInMonths + - duration + type: object + required: + - id + - coupon + type: object + items: + items: + properties: + id: + type: string + priceId: + type: string + productId: + type: string + amount: + type: number + quantity: + type: number + required: + - id + - priceId + - productId + - amount + - quantity + type: object + type: array + required: + - id + - trial + - period + - frequency + - discount + - items + type: object + type: array + controls: + nullable: true + properties: + analyticsSampleRateInPercent: + nullable: true + type: number + analyticsSpendLimitInDollars: + nullable: true + type: number + type: object + purchaseOrder: + nullable: true + type: string + status: + type: string + enum: + - active + - trialing + - overdue + - expired + - canceled + pricingExperiment: + type: string + enum: + - august-2022 + orbMigrationScheduledAt: + nullable: true + type: number + required: + - period + - plan + type: object + required: + - id + - slug + - billing + type: object + description: The team was created successfully + '400': + description: |- + One of the provided values in the request body is invalid. + The slug is already in use + '403': + description: You do not have permission to access this resource. + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - slug + properties: + slug: + example: a-random-team + description: The desired slug for the Team + type: string + maxLength: 48 + name: + example: A Random Team + description: The desired name for the Team. It will be generated from the provided slug if nothing is provided + type: string + maxLength: 256 + '/v1/teams/{teamId}': + delete: + description: Delete a team under your account. You need to send a `DELETE` request with the desired team `id`. An optional array of reasons for deletion may also be sent. + operationId: deleteTeam + security: + - bearerToken: [] + summary: Delete a Team + tags: + - teams + responses: + '200': + description: The Team was successfully deleted + content: + application/json: + schema: + properties: + id: + type: string + description: The ID of the deleted Team + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + newDefaultTeamIdError: + type: boolean + description: 'Signifies whether the default team update has failed, when newDefaultTeamId is provided in request query.' + example: true + required: + - id + type: object + description: The Team was successfully deleted + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '402': + description: '' + '403': + description: |- + You do not have permission to access this resource. + The authenticated user can't access the team + '404': + description: The team was not found + '409': + description: '' + parameters: + - name: newDefaultTeamId + description: Id of the team to be set as the new default team + in: query + required: false + schema: + type: string + description: Id of the team to be set as the new default team + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + - description: The Team identifier or slug to perform the request on behalf of. + in: path + name: teamId + schema: + type: string + required: true + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + reasons: + type: array + description: Optional array of objects that describe the reason why the team is being deleted. + items: + type: object + description: An object describing the reason why the team is being deleted. + required: + - slug + - description + additionalProperties: false + properties: + slug: + type: string + description: Idenitifier slug of the reason why the team is being deleted. + description: + type: string + description: Description of the reason why the team is being deleted. + '/v1/teams/{teamId}/invites/{inviteId}': + delete: + description: Delete an active Team invite code. + operationId: deleteTeamInviteCode + security: + - bearerToken: [] + summary: Delete a Team invite code + tags: + - teams + responses: + '200': + description: Successfully deleted Team invite code. + content: + application/json: + schema: + properties: + id: + type: string + description: ID of the team. + required: + - id + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: |- + You do not have permission to access this resource. + Invite managed by directory sync + Not authorized to access this team. + '404': + description: |- + Team invite code not found. + No team found. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: path + name: teamId + schema: + type: string + required: true + - name: inviteId + description: The Team invite code ID. + in: path + required: true + schema: + type: string + description: The Team invite code ID. + example: 2wn2hudbr4chb1ecywo9dvzo7g9sscs6mzcz8htdde0txyom4l diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/user.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/user.yaml new file mode 100644 index 0000000..5d0fb5e --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/user.yaml @@ -0,0 +1,1975 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - user + description: user +components: + schemas: + UserEvent: + properties: + id: + type: string + description: The unique identifier of the Event. + example: uev_bfmMjiMnXfnPbT97dGdpJbCN + text: + type: string + description: The human-readable text of the Event. + example: You logged in via GitHub + entities: + items: + properties: + type: + type: string + enum: + - author + - bitbucket_login + - bold + - deployment_host + - dns_record + - git_link + - github_login + - gitlab_login + - hook_name + - integration + - edge-config + - link + - project_name + - scaling_rules + - env_var_name + - target + - store + - system + description: The type of entity. + example: author + start: + type: number + description: The index of where the entity begins within the `text` (inclusive). + example: 0 + end: + type: number + description: The index of where the entity ends within the `text` (non-inclusive). + example: 3 + required: + - type + - start + - end + type: object + description: A list of "entities" within the event `text`. Useful for enhancing the displayed text with additional styling and links. + type: array + description: A list of "entities" within the event `text`. Useful for enhancing the displayed text with additional styling and links. + createdAt: + type: number + description: Timestamp (in milliseconds) of when the event was generated. + example: 1632859321020 + user: + properties: + avatar: + type: string + email: + type: string + slug: + type: string + uid: + type: string + username: + type: string + required: + - avatar + - email + - uid + - username + type: object + description: Metadata for the User who generated the event. + userId: + type: string + description: The unique identifier of the User who generated the event. + example: zTuNVUXEAvvnNN3IaqinkyMw + required: + - id + - text + - entities + - createdAt + - userId + type: object + description: Array of events generated by the User. + AuthUser: + properties: + createdAt: + type: number + description: UNIX timestamp (in milliseconds) when the User account was created. + example: 1630748523395 + softBlock: + nullable: true + properties: + blockedAt: + type: number + reason: + type: string + enum: + - SUBSCRIPTION_CANCELED + - SUBSCRIPTION_EXPIRED + - UNPAID_INVOICE + - ENTERPRISE_TRIAL_ENDED + - FAIR_USE_LIMITS_EXCEEDED + - BLOCKED_FOR_PLATFORM_ABUSE + blockedDueToOverageType: + type: string + enum: + - blobStores + - analyticsUsage + - artifacts + - bandwidth + - cronJobInvocation + - dataCacheRead + - dataCacheRevalidation + - dataCacheWrite + - edgeConfigRead + - edgeConfigWrite + - edgeFunctionExecutionUnits + - edgeMiddlewareInvocations + - monitoringMetric + - postgresComputeTime + - postgresDatabase + - postgresDataStorage + - postgresDataTransfer + - postgresWrittenData + - serverlessFunctionExecution + - sourceImages + - storageRedisTotalBandwidthInBytes + - storageRedisTotalCommands + - storageRedisTotalDailyAvgStorageInBytes + - storageRedisTotalDatabases + - webAnalyticsEvent + - blobTotalSimpleRequests + - blobTotalAdvancedRequests + - blobTotalAvgSizeInBytes + - blobTotalGetResponseObjectSizeInBytes + required: + - blockedAt + - reason + type: object + description: 'When the User account has been "soft blocked", this property will contain the date when the restriction was enacted, and the identifier for why.' + billing: + nullable: true + properties: + currency: + type: string + enum: + - usd + - eur + cancelation: + nullable: true + type: number + period: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + contract: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + plan: + type: string + enum: + - pro + - enterprise + - hobby + platform: + type: string + enum: + - stripe + - stripeTestMode + orbCustomerId: + type: string + syncedAt: + type: number + programType: + type: string + enum: + - startup + - agency + trial: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + email: + nullable: true + type: string + tax: + nullable: true + properties: + type: + type: string + id: + type: string + required: + - type + - id + type: object + language: + nullable: true + type: string + address: + nullable: true + properties: + line1: + type: string + line2: + type: string + postalCode: + type: string + city: + type: string + country: + type: string + state: + type: string + required: + - line1 + type: object + name: + nullable: true + type: string + invoiceItems: + nullable: true + properties: + concurrentBuilds: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + webAnalytics: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + pro: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + enterprise: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + analytics: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + monitoring: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + passwordProtection: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + previewDeploymentSuffix: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + saml: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + teamSeats: + properties: + tier: + type: number + price: + type: number + quantity: + type: number + name: + type: string + hidden: + type: boolean + createdAt: + type: number + disabledAt: + nullable: true + type: number + frequency: + properties: + interval: + type: string + enum: + - month + intervalCount: + type: number + enum: + - 1 + - 2 + - 3 + - 6 + - 12 + required: + - interval + - intervalCount + type: object + maxQuantity: + type: number + required: + - price + - quantity + - hidden + type: object + description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' + analyticsUsage: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + artifacts: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + bandwidth: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + cronJobInvocation: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + dataCacheRead: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + dataCacheRevalidation: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + dataCacheWrite: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + edgeConfigRead: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + edgeConfigWrite: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + edgeFunctionExecutionUnits: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + edgeMiddlewareInvocations: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + monitoringMetric: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresComputeTime: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresDatabase: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresDataStorage: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresDataTransfer: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + postgresWrittenData: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + serverlessFunctionExecution: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + sourceImages: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + storageRedisTotalBandwidthInBytes: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + storageRedisTotalCommands: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + storageRedisTotalDailyAvgStorageInBytes: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + storageRedisTotalDatabases: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + webAnalyticsEvent: + properties: + tier: + type: number + price: + type: number + batch: + type: number + threshold: + type: number + name: + type: string + hidden: + type: boolean + disabledAt: + nullable: true + type: number + enabledAt: + nullable: true + type: number + required: + - price + - batch + - threshold + - hidden + type: object + type: object + invoiceSettings: + properties: + footer: + type: string + type: object + subscriptions: + nullable: true + items: + properties: + id: + type: string + trial: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + period: + properties: + start: + type: number + end: + type: number + required: + - start + - end + type: object + frequency: + properties: + interval: + type: string + enum: + - month + - day + - week + - year + intervalCount: + type: number + required: + - interval + - intervalCount + type: object + discount: + nullable: true + properties: + id: + type: string + coupon: + properties: + id: + type: string + name: + nullable: true + type: string + amountOff: + nullable: true + type: number + percentageOff: + nullable: true + type: number + durationInMonths: + nullable: true + type: number + duration: + type: string + enum: + - forever + - repeating + - once + required: + - id + - name + - amountOff + - percentageOff + - durationInMonths + - duration + type: object + required: + - id + - coupon + type: object + items: + items: + properties: + id: + type: string + priceId: + type: string + productId: + type: string + amount: + type: number + quantity: + type: number + required: + - id + - priceId + - productId + - amount + - quantity + type: object + type: array + required: + - id + - trial + - period + - frequency + - discount + - items + type: object + type: array + controls: + nullable: true + properties: + analyticsSampleRateInPercent: + nullable: true + type: number + analyticsSpendLimitInDollars: + nullable: true + type: number + type: object + purchaseOrder: + nullable: true + type: string + status: + type: string + enum: + - active + - trialing + - overdue + - expired + - canceled + pricingExperiment: + type: string + enum: + - august-2022 + orbMigrationScheduledAt: + nullable: true + type: number + required: + - period + - plan + type: object + description: An object containing billing infomation associated with the User account. + resourceConfig: + properties: + nodeType: + type: string + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + concurrentBuilds: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + awsAccountType: + type: string + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + awsAccountIds: + items: + type: string + type: array + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + cfZoneName: + type: string + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + edgeConfigs: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + edgeConfigSize: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + edgeFunctionMaxSizeBytes: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + edgeFunctionExecutionTimeoutMs: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + serverlessFunctionDefaultMaxExecutionTime: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + kvDatabases: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + postgresDatabases: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + blobStores: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + type: object + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + stagingPrefix: + type: string + description: Prefix that will be used in the URL of "Preview" deployments created by the User account. + activeDashboardViews: + items: + properties: + scopeId: + type: string + viewPreference: + type: string + enum: + - cards + - list + required: + - scopeId + - viewPreference + type: object + description: set of dashboard view preferences (cards or list) per scopeId + type: array + description: set of dashboard view preferences (cards or list) per scopeId + importFlowGitNamespace: + nullable: true + oneOf: + - type: string + - type: number + importFlowGitNamespaceId: + nullable: true + oneOf: + - type: string + - type: number + importFlowGitProvider: + type: string + enum: + - github + - gitlab + - bitbucket + preferredScopesAndGitNamespaces: + items: + properties: + scopeId: + type: string + gitNamespaceId: + nullable: true + oneOf: + - type: string + - type: number + required: + - scopeId + - gitNamespaceId + type: object + type: array + dismissedToasts: + items: + properties: + name: + type: string + dismissals: + items: + properties: + scopeId: + type: string + createdAt: + type: number + required: + - scopeId + - createdAt + type: object + type: array + required: + - name + - dismissals + type: object + description: 'A record of when, under a certain scopeId, a toast was dismissed' + type: array + description: 'A record of when, under a certain scopeId, a toast was dismissed' + favoriteProjectsAndSpaces: + items: + oneOf: + - properties: + projectId: + type: string + scopeSlug: + type: string + scopeId: + type: string + required: + - projectId + - scopeSlug + - scopeId + type: object + description: A list of projects and spaces across teams that a user has marked as a favorite. + - properties: + spaceId: + type: string + scopeSlug: + type: string + scopeId: + type: string + required: + - spaceId + - scopeSlug + - scopeId + type: object + description: A list of projects and spaces across teams that a user has marked as a favorite. + type: array + description: A list of projects and spaces across teams that a user has marked as a favorite. + hasTrialAvailable: + type: boolean + description: Whether the user has a trial available for a paid plan subscription. + remoteCaching: + properties: + enabled: + type: boolean + type: object + description: remote caching settings + dataCache: + properties: + excessBillingEnabled: + type: boolean + type: object + description: data cache settings + featureBlocks: + properties: + webAnalytics: + properties: + blockedFrom: + type: number + blockedUntil: + type: number + isCurrentlyBlocked: + type: boolean + required: + - isCurrentlyBlocked + type: object + type: object + description: Feature blocks for the user + defaultTeamId: + nullable: true + type: string + description: The user's default team. Only applies if the user's `version` is `'northstar'`. + id: + type: string + description: The User's unique identifier. + example: AEIIDYVk59zbFF2Sxfyxxmua + email: + type: string + description: Email address associated with the User account. + example: me@example.com + name: + nullable: true + type: string + description: 'Name associated with the User account, or `null` if none has been provided.' + example: John Doe + username: + type: string + description: Unique username associated with the User account. + example: jdoe + avatar: + nullable: true + type: string + description: SHA1 hash of the avatar for the User account. Can be used in conjuction with the ... endpoint to retrieve the avatar image. + example: 22cb30c85ff45ac4c72de8981500006b28114aa1 + version: + nullable: true + type: string + enum: + - northstar + description: The user's version. Will either be unset or `northstar`. + required: + - createdAt + - softBlock + - billing + - resourceConfig + - stagingPrefix + - hasTrialAvailable + - defaultTeamId + - id + - email + - name + - username + - avatar + - version + type: object + description: Data for the currently authenticated User. + AuthUserLimited: + properties: + limited: + type: boolean + description: 'Property indicating that this User data contains only limited information, due to the authentication token missing privileges to read the full User data. Re-login with email, GitHub, GitLab or Bitbucket in order to upgrade the authentication token with the necessary privileges.' + id: + type: string + description: The User's unique identifier. + example: AEIIDYVk59zbFF2Sxfyxxmua + email: + type: string + description: Email address associated with the User account. + example: me@example.com + name: + nullable: true + type: string + description: 'Name associated with the User account, or `null` if none has been provided.' + example: John Doe + username: + type: string + description: Unique username associated with the User account. + example: jdoe + avatar: + nullable: true + type: string + description: SHA1 hash of the avatar for the User account. Can be used in conjuction with the ... endpoint to retrieve the avatar image. + example: 22cb30c85ff45ac4c72de8981500006b28114aa1 + version: + nullable: true + type: string + enum: + - northstar + description: The user's version. Will either be unset or `northstar`. + required: + - limited + - id + - email + - name + - username + - avatar + - version + type: object + description: 'A limited form of data for the currently authenticated User, due to the authentication token missing privileges to read the full User data.' + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + events: + id: vercel.user.events + name: events + title: Events + methods: + list_user_events: + operation: + $ref: '#/paths/~1v3~1events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.events + _list_user_events: + operation: + $ref: '#/paths/~1v3~1events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/events/methods/list_user_events' + insert: [] + update: [] + delete: [] + user: + id: vercel.user.user + name: user + title: User + methods: + get_auth_user: + operation: + $ref: '#/paths/~1v2~1user/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.user + _get_auth_user: + operation: + $ref: '#/paths/~1v2~1user/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request_delete: + operation: + $ref: '#/paths/~1v1~1user/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/user/methods/get_auth_user' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/user/methods/request_delete' +paths: + /v3/events: + get: + description: 'Retrieves a list of "events" generated by the User on Vercel. Events are generated when the User performs a particular action, such as logging in, creating a deployment, and joining a Team (just to name a few). When the `teamId` parameter is supplied, then the events that are returned will be in relation to the Team that was specified.' + operationId: listUserEvents + security: + - bearerToken: [] + summary: List User Events + tags: + - user + responses: + '200': + description: Successful response. + content: + application/json: + schema: + properties: + events: + items: + $ref: '#/components/schemas/UserEvent' + type: array + description: Array of events generated by the User. + required: + - events + type: object + description: Successful response. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: limit + description: Maximum number of items which may be returned. + in: query + schema: + description: Maximum number of items which may be returned. + example: 20 + type: number + - name: since + description: Timestamp to only include items created since then. + in: query + schema: + description: Timestamp to only include items created since then. + example: '2019-12-08T10:00:38.976Z' + type: string + - name: until + description: Timestamp to only include items created until then. + in: query + schema: + description: Timestamp to only include items created until then. + example: '2019-12-09T23:00:38.976Z' + type: string + - name: types + description: Comma-delimited list of event \"types\" to filter the results by. + in: query + schema: + description: Comma-delimited list of event \"types\" to filter the results by. + example: 'login,team-member-join,domain-buy' + type: string + - name: userId + description: 'When retrieving events for a Team, the `userId` parameter may be specified to filter events generated by a specific member of the Team.' + in: query + schema: + description: 'When retrieving events for a Team, the `userId` parameter may be specified to filter events generated by a specific member of the Team.' + example: aeIInYVk59zbFF2SxfyxxmuO + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + /v2/user: + get: + description: Retrieves information related to the currently authenticated User. + operationId: getAuthUser + security: + - bearerToken: [] + summary: Get the User + tags: + - user + responses: + '200': + description: Successful response. + content: + application/json: + schema: + properties: + user: + oneOf: + - $ref: '#/components/schemas/AuthUser' + - $ref: '#/components/schemas/AuthUserLimited' + required: + - user + type: object + description: Successful response. + '302': + description: '' + '400': + description: '' + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: [] + /v1/user: + delete: + description: 'Initiates the deletion process for the currently authenticated User, by sending a deletion confirmation email. The email contains a link that the user needs to visit in order to proceed with the deletion process.' + operationId: requestDelete + security: + - bearerToken: [] + summary: Delete User Account + tags: + - user + responses: + '202': + description: 'Response indicating that the User deletion process has been initiated, and a confirmation email has been sent.' + content: + application/json: + schema: + properties: + id: + type: string + description: Unique identifier of the User who has initiated deletion. + email: + type: string + description: Email address of the User who has initiated deletion. + message: + type: string + description: User deletion progress status. + example: Verification email sent + required: + - id + - email + - message + type: object + '400': + description: One of the provided values in the request body is invalid. + '403': + description: You do not have permission to access this resource. + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + reasons: + type: array + description: Optional array of objects that describe the reason why the User account is being deleted. + items: + type: object + description: An object describing the reason why the User account is being deleted. + required: + - slug + - description + additionalProperties: false + properties: + slug: + type: string + description: Idenitifier slug of the reason why the User account is being deleted. + description: + type: string + description: Description of the reason why the User account is being deleted. diff --git a/provider-dev/openapi/src/vercel/v00.00.00000/services/webhooks.yaml b/provider-dev/openapi/src/vercel/v00.00.00000/services/webhooks.yaml new file mode 100644 index 0000000..20772df --- /dev/null +++ b/provider-dev/openapi/src/vercel/v00.00.00000/services/webhooks.yaml @@ -0,0 +1,597 @@ +openapi: 3.0.3 +servers: + - url: 'https://api.vercel.com' + description: Production API +info: + contact: + email: support@vercel.com + name: Vercel Support + url: 'https://vercel.com/support' + version: 0.0.1 + title: Vercel API - webhooks + description: webhooks +components: + schemas: {} + responses: {} + securitySchemes: + bearerToken: + type: http + description: Default authentication mechanism + scheme: bearer + oauth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: 'https://api.vercel.com/oauth/authorize' + tokenUrl: 'https://api.vercel.com/oauth/access_token' + scopes: {} + x-stackQL-resources: + webhooks: + id: vercel.webhooks.webhooks + name: webhooks + title: Webhooks + methods: + create_webhook: + operation: + $ref: '#/paths/~1v1~1webhooks/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get_webhooks: + operation: + $ref: '#/paths/~1v1~1webhooks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_webhook: + operation: + $ref: '#/paths/~1v1~1webhooks~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_webhook: + operation: + $ref: '#/paths/~1v1~1webhooks~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/get_webhook' + - $ref: '#/components/x-stackQL-resources/webhooks/methods/get_webhooks' + insert: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/create_webhook' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/delete_webhook' +paths: + /v1/webhooks: + post: + description: Creates a webhook + operationId: createWebhook + security: + - bearerToken: [] + summary: Creates a webhook + tags: + - webhooks + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + secret: + type: string + description: The webhook secret used to sign the payload + events: + items: + type: string + enum: + - budget.reached + - domain.created + - deployment.created + - deployment.error + - deployment.canceled + - deployment.succeeded + - deployment.ready + - deployment.check-rerequested + - integration-configuration.permission-upgraded + - integration-configuration.removed + - integration-configuration.scope-change-confirmed + - project.created + - project.removed + - deployment-checks-completed + - deployment-ready + - deployment-prepared + - deployment-error + - deployment-check-rerequested + - deployment-canceled + - project-created + - project-removed + - domain-created + - deployment + - integration-configuration-permission-updated + - integration-configuration-removed + - integration-configuration-scope-change-confirmed + description: The webhooks events + example: deployment.created + type: array + description: The webhooks events + example: deployment.created + id: + type: string + description: The webhook id + example: account_hook_GflD6EYyo7F4ViYS + url: + type: string + description: A string with the URL of the webhook + example: 'https://my-webhook.com' + ownerId: + type: string + description: The unique ID of the team the webhook belongs to + example: ZspSRT4ljIEEmMHgoDwKWDei + createdAt: + type: number + description: A number containing the date when the webhook was created in in milliseconds + example: 1567024758130 + updatedAt: + type: number + description: A number containing the date when the webhook was updated in in milliseconds + example: 1567024758130 + projectIds: + items: + type: string + type: array + description: The ID of the projects the webhook is associated with + example: + - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + required: + - secret + - events + - id + - url + - ownerId + - createdAt + - updatedAt + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - url + - events + properties: + url: + format: uri + pattern: '^https?://' + type: string + events: + minItems: 1 + type: array + items: + type: string + enum: + - budget.reached + - domain.created + - deployment.created + - deployment.error + - deployment.canceled + - deployment.succeeded + - deployment.ready + - deployment.check-rerequested + - integration-configuration.permission-upgraded + - integration-configuration.removed + - integration-configuration.scope-change-confirmed + - project.created + - project.removed + - deployment-checks-completed + - deployment-ready + - deployment-prepared + - deployment-error + - deployment-check-rerequested + - deployment-canceled + - project-created + - project-removed + - domain-created + - deployment + - integration-configuration-permission-updated + - integration-configuration-removed + - integration-configuration-scope-change-confirmed + projectIds: + minItems: 1 + maxItems: 50 + type: array + items: + pattern: '^[a-zA-z0-9_]+$' + type: string + get: + description: Get a list of webhooks + operationId: getWebhooks + security: + - bearerToken: [] + summary: Get a list of webhooks + tags: + - webhooks + responses: + '200': + description: '' + content: + application/json: + schema: + oneOf: + - items: + properties: + projectsMetadata: + nullable: true + items: + properties: + id: + type: string + name: + type: string + framework: + nullable: true + type: string + enum: + - blitzjs + - nextjs + - gatsby + - remix + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - vitepress + - vuepress + - parcel + - sanity + - storybook + latestDeployment: + type: string + required: + - id + - name + type: object + type: array + events: + items: + type: string + enum: + - budget.reached + - domain.created + - deployment.created + - deployment.error + - deployment.canceled + - deployment.succeeded + - deployment.ready + - deployment.check-rerequested + - integration-configuration.permission-upgraded + - integration-configuration.removed + - integration-configuration.scope-change-confirmed + - project.created + - project.removed + - deployment-checks-completed + - deployment-ready + - deployment-prepared + - deployment-error + - deployment-check-rerequested + - deployment-canceled + - project-created + - project-removed + - domain-created + - deployment + - integration-configuration-permission-updated + - integration-configuration-removed + - integration-configuration-scope-change-confirmed + description: The webhooks events + example: deployment.created + type: array + description: The webhooks events + example: deployment.created + id: + type: string + description: The webhook id + example: account_hook_GflD6EYyo7F4ViYS + url: + type: string + description: A string with the URL of the webhook + example: 'https://my-webhook.com' + ownerId: + type: string + description: The unique ID of the team the webhook belongs to + example: ZspSRT4ljIEEmMHgoDwKWDei + createdAt: + type: number + description: A number containing the date when the webhook was created in in milliseconds + example: 1567024758130 + updatedAt: + type: number + description: A number containing the date when the webhook was updated in in milliseconds + example: 1567024758130 + projectIds: + items: + type: string + type: array + description: The ID of the projects the webhook is associated with + example: + - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + required: + - projectsMetadata + - events + - id + - url + - ownerId + - createdAt + - updatedAt + type: object + type: array + - items: + properties: + events: + items: + type: string + enum: + - budget.reached + - domain.created + - deployment.created + - deployment.error + - deployment.canceled + - deployment.succeeded + - deployment.ready + - deployment.check-rerequested + - integration-configuration.permission-upgraded + - integration-configuration.removed + - integration-configuration.scope-change-confirmed + - project.created + - project.removed + - deployment-checks-completed + - deployment-ready + - deployment-prepared + - deployment-error + - deployment-check-rerequested + - deployment-canceled + - project-created + - project-removed + - domain-created + - deployment + - integration-configuration-permission-updated + - integration-configuration-removed + - integration-configuration-scope-change-confirmed + description: The webhooks events + example: deployment.created + type: array + description: The webhooks events + example: deployment.created + id: + type: string + description: The webhook id + example: account_hook_GflD6EYyo7F4ViYS + url: + type: string + description: A string with the URL of the webhook + example: 'https://my-webhook.com' + ownerId: + type: string + description: The unique ID of the team the webhook belongs to + example: ZspSRT4ljIEEmMHgoDwKWDei + createdAt: + type: number + description: A number containing the date when the webhook was created in in milliseconds + example: 1567024758130 + updatedAt: + type: number + description: A number containing the date when the webhook was updated in in milliseconds + example: 1567024758130 + projectIds: + items: + type: string + type: array + description: The ID of the projects the webhook is associated with + example: + - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + required: + - events + - id + - url + - ownerId + - createdAt + - updatedAt + type: object + type: array + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: projectId + in: query + schema: + pattern: '^[a-zA-z0-9_]+$' + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + '/v1/webhooks/{id}': + get: + description: Get a webhook + operationId: getWebhook + security: + - bearerToken: [] + summary: Get a webhook + tags: + - webhooks + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + events: + items: + type: string + enum: + - budget.reached + - domain.created + - deployment.created + - deployment.error + - deployment.canceled + - deployment.succeeded + - deployment.ready + - deployment.check-rerequested + - integration-configuration.permission-upgraded + - integration-configuration.removed + - integration-configuration.scope-change-confirmed + - project.created + - project.removed + - deployment-checks-completed + - deployment-ready + - deployment-prepared + - deployment-error + - deployment-check-rerequested + - deployment-canceled + - project-created + - project-removed + - domain-created + - deployment + - integration-configuration-permission-updated + - integration-configuration-removed + - integration-configuration-scope-change-confirmed + description: The webhooks events + example: deployment.created + type: array + description: The webhooks events + example: deployment.created + id: + type: string + description: The webhook id + example: account_hook_GflD6EYyo7F4ViYS + url: + type: string + description: A string with the URL of the webhook + example: 'https://my-webhook.com' + ownerId: + type: string + description: The unique ID of the team the webhook belongs to + example: ZspSRT4ljIEEmMHgoDwKWDei + createdAt: + type: number + description: A number containing the date when the webhook was created in in milliseconds + example: 1567024758130 + updatedAt: + type: number + description: A number containing the date when the webhook was updated in in milliseconds + example: 1567024758130 + projectIds: + items: + type: string + type: array + description: The ID of the projects the webhook is associated with + example: + - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + required: + - events + - id + - url + - ownerId + - createdAt + - updatedAt + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: id + in: path + required: true + schema: + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string + delete: + description: Deletes a webhook + operationId: deleteWebhook + security: + - bearerToken: [] + summary: Deletes a webhook + tags: + - webhooks + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + parameters: + - name: id + in: path + required: true + schema: + type: string + - description: The Team identifier or slug to perform the request on behalf of. + in: query + name: teamId + required: true + schema: + type: string diff --git a/website/docs/.gitkeep b/website/docs/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/website/docs/index.md b/website/docs/index.md new file mode 100644 index 0000000..2317f8a --- /dev/null +++ b/website/docs/index.md @@ -0,0 +1,96 @@ +--- +title: vercel +hide_title: false +hide_table_of_contents: false +keywords: + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy, and manage Vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +id: 'provider-intro' +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; + +Cloud platform for serverless deployment and hosting of web applications. + +:::info[Provider Summary] + +total services: __19__ +total resources: __59__ + +::: + +See also: +[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) +* * * + +## Installation + +To pull the latest version of the `vercel` provider, run the following command: + +```bash +REGISTRY PULL vercel; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Authentication + +The following system environment variables are used for authentication by default: + +- - Vercel API Token (see Creating a Vercel API Token) + +These variables are sourced at runtime (from the local machine or as CI variables/secrets). + +
+ +Using different environment variables + +To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: + +```bash + +AUTH='{ "vercel": { "type": "bearer", "credentialsenvvar": "YOUR_VERCEL_API_TOKEN_VAR" }}' +stackql shell --auth="${AUTH}" + +``` +or using PowerShell: + +```powershell + +$Auth = "{ 'vercel': { 'type': 'bearer', 'credentialsenvvar': 'YOUR_VERCEL_API_TOKEN_VAR' }}" +stackql.exe shell --auth=$Auth + +``` +
+ +## Services + diff --git a/website/docs/services/aliases/aliases/index.md b/website/docs/services/aliases/aliases/index.md new file mode 100644 index 0000000..2db9e6f --- /dev/null +++ b/website/docs/services/aliases/aliases/index.md @@ -0,0 +1,436 @@ +--- +title: aliases +hide_title: false +hide_table_of_contents: false +keywords: + - aliases + - aliases + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an aliases resource. + +## Overview + + + + +
Namealiases
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The alias information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe alias name, it could be a `.vercel.app` subdomain or a custom domain (example: my-alias.vercel.app)
string (date-time)The date when the alias was created (example: 2017-04-26T23:00:34.232Z)
numberThe date when the alias was created in milliseconds since the UNIX epoch
objectInformation of the user who created the alias
numberThe date when the alias was deleted in milliseconds since the UNIX epoch
objectA map with the deployment ID, URL and metadata
stringThe deployment ID (example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx)
stringThe unique identifier of the project (example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB)
objectThe protection bypass for the alias
stringTarget destination domain for redirect when the alias is a redirect
numberStatus code to be used on redirect
stringThe unique identifier of the alias
numberThe date when the alias was updated in milliseconds since the UNIX epoch
+
+ + +The paginated list of aliases + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe alias name, it could be a `.vercel.app` subdomain or a custom domain (example: my-alias.vercel.app)
string (date-time)The date when the alias was created (example: 2017-04-26T23:00:34.232Z)
numberThe date when the alias was created in milliseconds since the UNIX epoch
objectInformation of the user who created the alias
numberThe date when the alias was deleted in milliseconds since the UNIX epoch
objectA map with the deployment ID, URL and metadata
stringThe deployment ID (example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx)
stringThe unique identifier of the project (example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB)
objectThe protection bypass for the alias
stringTarget destination domain for redirect when the alias is a redirect
numberStatus code to be used on redirect
stringThe unique identifier of the alias
numberThe date when the alias was updated in milliseconds since the UNIX epoch
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
idOrAlias, teamIdfrom, projectId, since, untilRetrieves an Alias for the given host name or alias ID.
teamIddomain, from, limit, projectId, since, until, rollbackDeploymentIdRetrieves a list of aliases for the authenticated User or Team. When `domain` is provided, only aliases for that domain will be returned. When `projectId` is provided, it will only return the given project aliases.
aliasId, teamIdDelete an Alias with the specified ID.
teamIddomain, from, limit, projectId, since, until, rollbackDeploymentIdRetrieves a list of aliases for the authenticated User or Team. When `domain` is provided, only aliases for that domain will be returned. When `projectId` is provided, it will only return the given project aliases.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
The ID or alias that will be removed
stringThe alias or alias ID to be retrieved
stringThe Team identifier or slug to perform the request on behalf of.
Get only aliases of the given domain name
numberGet only aliases created after the provided timestamp
numberMaximum number of aliases to list from a request
stringFilter aliases from the given `projectId`
stringGet aliases that would be rolled back for the given deployment
numberGet aliases created after this JavaScript timestamp
numberGet aliases created before this JavaScript timestamp
+ +## `SELECT` examples + + + + +Retrieves an Alias for the given host name or alias ID. + +```sql +SELECT +alias, +created, +createdAt, +creator, +deletedAt, +deployment, +deploymentId, +projectId, +protectionBypass, +redirect, +redirectStatusCode, +uid, +updatedAt +FROM vercel.aliases.aliases +WHERE idOrAlias = '{{ idOrAlias }}' -- required +AND teamId = '{{ teamId }}' -- required +AND from = '{{ from }}' +AND projectId = '{{ projectId }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +; +``` + + + +Retrieves a list of aliases for the authenticated User or Team. When `domain` is provided, only aliases for that domain will be returned. When `projectId` is provided, it will only return the given project aliases. + +```sql +SELECT +alias, +created, +createdAt, +creator, +deletedAt, +deployment, +deploymentId, +projectId, +protectionBypass, +redirect, +redirectStatusCode, +uid, +updatedAt +FROM vercel.aliases.aliases +WHERE teamId = '{{ teamId }}' -- required +AND domain = '{{ domain }}' +AND from = '{{ from }}' +AND limit = '{{ limit }}' +AND projectId = '{{ projectId }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +AND rollbackDeploymentId = '{{ rollbackDeploymentId }}' +; +``` + + + + +## `DELETE` examples + + + + +Delete an Alias with the specified ID. + +```sql +DELETE FROM vercel.aliases.aliases +WHERE aliasId = '{{ aliasId }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Retrieves a list of aliases for the authenticated User or Team. When `domain` is provided, only aliases for that domain will be returned. When `projectId` is provided, it will only return the given project aliases. + +```sql +EXEC vercel.aliases.aliases._list_aliases +@teamId='{{ teamId }}' --required, +@domain='{{ domain }}', +@from='{{ from }}', +@limit='{{ limit }}', +@projectId='{{ projectId }}', +@since='{{ since }}', +@until='{{ until }}', +@rollbackDeploymentId='{{ rollbackDeploymentId }}' +; +``` + + diff --git a/website/docs/services/aliases/deployments/index.md b/website/docs/services/aliases/deployments/index.md new file mode 100644 index 0000000..ef6b368 --- /dev/null +++ b/website/docs/services/aliases/deployments/index.md @@ -0,0 +1,212 @@ +--- +title: deployments +hide_title: false +hide_table_of_contents: false +keywords: + - deployments + - aliases + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a deployments resource. + +## Overview + + + + +
Namedeployments
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The list of aliases assigned to the deployment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe alias name, it could be a `.vercel.app` subdomain or a custom domain (example: my-alias.vercel.app)
string (date-time)The date when the alias was created (example: 2017-04-26T23:00:34.232Z)
objectThe protection bypass for the alias
stringTarget destination domain for redirect when the alias is a redirect
stringThe unique identifier of the alias (example: 2WjyKQmM8ZnGcJsPWMrHRHrE)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, teamIdRetrieves all Aliases for the Deployment with the given ID. The authenticated user or team must own the deployment.
id, teamIdRetrieves all Aliases for the Deployment with the given ID. The authenticated user or team must own the deployment.
id, teamIdCreates a new alias for the deployment with the given deployment ID. The authenticated user or team must own this deployment. If the desired alias is already assigned to another deployment, then it will be removed from the old deployment and assigned to the new one.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
The ID of the deployment the aliases should be listed for
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Retrieves all Aliases for the Deployment with the given ID. The authenticated user or team must own the deployment. + +```sql +SELECT +alias, +created, +protectionBypass, +redirect, +uid +FROM vercel.aliases.deployments +WHERE id = '{{ id }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + + +## Lifecycle Methods + + + + +Retrieves all Aliases for the Deployment with the given ID. The authenticated user or team must own the deployment. + +```sql +EXEC vercel.aliases.deployments._list_deployment_aliases +@id='{{ id }}' --required, +@teamId='{{ teamId }}' --required +; +``` + + + +Creates a new alias for the deployment with the given deployment ID. The authenticated user or team must own this deployment. If the desired alias is already assigned to another deployment, then it will be removed from the old deployment and assigned to the new one. + +```sql +EXEC vercel.aliases.deployments.assign_alias +@id='{{ id }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"alias": "{{ alias }}", +"redirect": "{{ redirect }}" +}' +; +``` + + diff --git a/website/docs/services/aliases/index.md b/website/docs/services/aliases/index.md new file mode 100644 index 0000000..abe60f7 --- /dev/null +++ b/website/docs/services/aliases/index.md @@ -0,0 +1,33 @@ +--- +title: aliases +hide_title: false +hide_table_of_contents: false +keywords: + - aliases + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +aliases service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources +
+ + +
\ No newline at end of file diff --git a/website/docs/services/artifacts/artifacts/index.md b/website/docs/services/artifacts/artifacts/index.md new file mode 100644 index 0000000..50b100f --- /dev/null +++ b/website/docs/services/artifacts/artifacts/index.md @@ -0,0 +1,237 @@ +--- +title: artifacts +hide_title: false +hide_table_of_contents: false +keywords: + - artifacts + - artifacts + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an artifacts resource. + +## Overview + + + + +
Nameartifacts
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamIdx-artifact-client-ci, x-artifact-client-interactiveRecords an artifacts cache usage event. The body of this request is an array of cache usage events. The supported event types are `HIT` and `MISS`. The source is either `LOCAL` the cache event was on the users filesystem cache or `REMOTE` if the cache event is for a remote cache. When the event is a `HIT` the request also accepts a number `duration` which is the time taken to generate the artifact in the cache.
teamIdCheck the status of Remote Caching for this principal. Returns a JSON-encoded status indicating if Remote Caching is enabled, disabled, or disabled due to usage limits.
Content-Length, hash, teamIdx-artifact-duration, x-artifact-client-ci, x-artifact-client-interactive, x-artifact-tagUploads a cache artifact identified by the `hash` specified on the path. The cache artifact can then be downloaded with the provided `hash`.
hash, teamIdx-artifact-client-ci, x-artifact-client-interactiveDownloads a cache artifact indentified by its `hash` specified on the request path. The artifact is downloaded as an octet-stream. The client should verify the content-length header and response body.
hash, teamIdCheck that a cache artifact with the given `hash` exists. This request returns response headers only and is equivalent to a `GET` request to this endpoint where the response contains no body.
teamId, hashesQuery information about an array of artifacts.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
numberThe artifact size in bytes
stringThe artifact hash
stringThe Team identifier or slug to perform the request on behalf of.
stringThe continuous integration or delivery environment where this artifact is downloaded.
integer1 if the client is an interactive shell. Otherwise 0
numberThe time taken to generate the uploaded artifact in milliseconds.
stringThe base64 encoded tag for this artifact. The value is sent back to clients when the artifact is downloaded as the header `x-artifact-tag`
+ +## Lifecycle Methods + + + + +Records an artifacts cache usage event. The body of this request is an array of cache usage events. The supported event types are `HIT` and `MISS`. The source is either `LOCAL` the cache event was on the users filesystem cache or `REMOTE` if the cache event is for a remote cache. When the event is a `HIT` the request also accepts a number `duration` which is the time taken to generate the artifact in the cache. + +```sql +EXEC vercel.artifacts.artifacts.record_events +@teamId='{{ teamId }}' --required, +@x-artifact-client-ci='{{ x-artifact-client-ci }}', +@x-artifact-client-interactive='{{ x-artifact-client-interactive }}' +; +``` + + + +Check the status of Remote Caching for this principal. Returns a JSON-encoded status indicating if Remote Caching is enabled, disabled, or disabled due to usage limits. + +```sql +EXEC vercel.artifacts.artifacts.status +@teamId='{{ teamId }}' --required +; +``` + + + +Uploads a cache artifact identified by the `hash` specified on the path. The cache artifact can then be downloaded with the provided `hash`. + +```sql +EXEC vercel.artifacts.artifacts.upload_artifact +@Content-Length='{{ Content-Length }}' --required, +@hash='{{ hash }}' --required, +@teamId='{{ teamId }}' --required, +@x-artifact-duration='{{ x-artifact-duration }}', +@x-artifact-client-ci='{{ x-artifact-client-ci }}', +@x-artifact-client-interactive='{{ x-artifact-client-interactive }}', +@x-artifact-tag='{{ x-artifact-tag }}' +; +``` + + + +Downloads a cache artifact indentified by its `hash` specified on the request path. The artifact is downloaded as an octet-stream. The client should verify the content-length header and response body. + +```sql +EXEC vercel.artifacts.artifacts.download_artifact +@hash='{{ hash }}' --required, +@teamId='{{ teamId }}' --required, +@x-artifact-client-ci='{{ x-artifact-client-ci }}', +@x-artifact-client-interactive='{{ x-artifact-client-interactive }}' +; +``` + + + +Check that a cache artifact with the given `hash` exists. This request returns response headers only and is equivalent to a `GET` request to this endpoint where the response contains no body. + +```sql +EXEC vercel.artifacts.artifacts.artifact_exists +@hash='{{ hash }}' --required, +@teamId='{{ teamId }}' --required +; +``` + + + +Query information about an array of artifacts. + +```sql +EXEC vercel.artifacts.artifacts.artifact_query +@teamId='{{ teamId }}' --required +@@json= +'{ +"hashes": "{{ hashes }}" +}' +; +``` + + diff --git a/website/docs/services/artifacts/index.md b/website/docs/services/artifacts/index.md new file mode 100644 index 0000000..d179b59 --- /dev/null +++ b/website/docs/services/artifacts/index.md @@ -0,0 +1,33 @@ +--- +title: artifacts +hide_title: false +hide_table_of_contents: false +keywords: + - artifacts + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +artifacts service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/authentication/index.md b/website/docs/services/authentication/index.md new file mode 100644 index 0000000..601f98a --- /dev/null +++ b/website/docs/services/authentication/index.md @@ -0,0 +1,33 @@ +--- +title: authentication +hide_title: false +hide_table_of_contents: false +keywords: + - authentication + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +authentication service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/authentication/user_tokens/index.md b/website/docs/services/authentication/user_tokens/index.md new file mode 100644 index 0000000..2fcadba --- /dev/null +++ b/website/docs/services/authentication/user_tokens/index.md @@ -0,0 +1,408 @@ +--- +title: user_tokens +hide_title: false +hide_table_of_contents: false +keywords: + - user_tokens + - authentication + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a user_tokens resource. + +## Overview + + + + +
Nameuser_tokens
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successful response. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
objectAuthentication token metadata.
+
+ + +Authentication token metadata. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique identifier of the token. (example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391)
stringThe human-readable name of the token.
numberTimestamp (in milliseconds) of when the token was most recently used.
numberTimestamp (in milliseconds) of when the token was created.
numberTimestamp (in milliseconds) of when the token expires.
stringThe origin of how the token was created. (example: github)
arrayThe access scopes granted to the token.
stringThe type of the token. (example: oauth2-token)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
tokenIdRetrieve metadata about an authentication token belonging to the currently authenticated User.
Retrieve a list of the current User's authentication tokens.
teamId, data__nameCreates and returns a new authentication token for the currently authenticated User. The `bearerToken` property is only provided once, in the response body, so be sure to save it on the client for use with API requests.
tokenIdInvalidate an authentication token, such that it will no longer be valid for future HTTP requests.
Retrieve a list of the current User's authentication tokens.
tokenemail, tokenName, ssoUserId, teamName, teamSlug, teamPlanVerify the user accepted the login request and get a authentication token. The user email address and the token received after requesting the login must be added to the URL as a query string with the names `email` and `token`.
emailRequest a new login for a user to get a token. This will respond with a verification token and send an email to confirm the request. Once confirmed you can use the verification token to get an authentication token.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Team identifier or slug to perform the request on behalf of.
stringThe token returned when the login was requested.
stringThe identifier of the token to invalidate. The special value \"current\" may be supplied, which invalidates the token that the HTTP request was authenticated with.
stringEmail to verify the login.
stringThe SAML Profile ID, when connecting a SAML Profile to a Team member for the first time.
stringThe name of this user's team.
stringThe plan for this user's team (pro or hobby).
stringThe slug for this user's team.
stringThe desired name for the token. It will be displayed on the user account details.
+ +## `SELECT` examples + + + + +Retrieve metadata about an authentication token belonging to the currently authenticated User. + +```sql +SELECT +token +FROM vercel.authentication.user_tokens +WHERE tokenId = '{{ tokenId }}' -- required +; +``` + + + +Retrieve a list of the current User's authentication tokens. + +```sql +SELECT +id, +name, +activeAt, +createdAt, +expiresAt, +origin, +scopes, +type +FROM vercel.authentication.user_tokens +; +``` + + + + +## `INSERT` examples + + + + +Creates and returns a new authentication token for the currently authenticated User. The `bearerToken` property is only provided once, in the response body, so be sure to save it on the client for use with API requests. + +```sql +INSERT INTO vercel.authentication.user_tokens ( +data__name, +data__expiresAt, +teamId +) +SELECT +'{{ name }}' /* required */, +{{ expiresAt }}, +'{{ teamId }}' +RETURNING +bearerToken, +token +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: user_tokens + props: + - name: teamId + value: string + description: Required parameter for the user_tokens resource. + - name: name + value: string + - name: expiresAt + value: number +``` + + + + +## `DELETE` examples + + + + +Invalidate an authentication token, such that it will no longer be valid for future HTTP requests. + +```sql +DELETE FROM vercel.authentication.user_tokens +WHERE tokenId = '{{ tokenId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Retrieve a list of the current User's authentication tokens. + +```sql +EXEC vercel.authentication.user_tokens._list_auth_tokens + +; +``` + + + +Verify the user accepted the login request and get a authentication token. The user email address and the token received after requesting the login must be added to the URL as a query string with the names `email` and `token`. + +```sql +EXEC vercel.authentication.user_tokens.verify_token +@token='{{ token }}' --required, +@email='{{ email }}', +@tokenName='{{ tokenName }}', +@ssoUserId='{{ ssoUserId }}', +@teamName='{{ teamName }}', +@teamSlug='{{ teamSlug }}', +@teamPlan='{{ teamPlan }}' +; +``` + + + +Request a new login for a user to get a token. This will respond with a verification token and send an email to confirm the request. Once confirmed you can use the verification token to get an authentication token. + +```sql +EXEC vercel.authentication.user_tokens.email_login +@@json= +'{ +"email": "{{ email }}", +"tokenName": "{{ tokenName }}" +}' +; +``` + + diff --git a/website/docs/services/billing_settings/data_cache/index.md b/website/docs/services/billing_settings/data_cache/index.md new file mode 100644 index 0000000..ef30107 --- /dev/null +++ b/website/docs/services/billing_settings/data_cache/index.md @@ -0,0 +1,99 @@ +--- +title: data_cache +hide_title: false +hide_table_of_contents: false +keywords: + - data_cache + - billing_settings + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a data_cache resource. + +## Overview + + + + +
Namedata_cache
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + +
NameDatatypeDescription
+ +## Lifecycle Methods + + + + +No description available. + +```sql +EXEC vercel.billing_settings.data_cache.enable_excess_billing +@@json= +'{ +"excessBillingEnabled": {{ excessBillingEnabled }} +}' +; +``` + + diff --git a/website/docs/services/billing_settings/index.md b/website/docs/services/billing_settings/index.md new file mode 100644 index 0000000..56516d0 --- /dev/null +++ b/website/docs/services/billing_settings/index.md @@ -0,0 +1,33 @@ +--- +title: billing_settings +hide_title: false +hide_table_of_contents: false +keywords: + - billing_settings + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +billing_settings service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/cache/data_cache_purge_all/index.md b/website/docs/services/cache/data_cache_purge_all/index.md new file mode 100644 index 0000000..a10b893 --- /dev/null +++ b/website/docs/services/cache/data_cache_purge_all/index.md @@ -0,0 +1,101 @@ +--- +title: data_cache_purge_all +hide_title: false +hide_table_of_contents: false +keywords: + - data_cache_purge_all + - cache + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a data_cache_purge_all resource. + +## Overview + + + + +
Namedata_cache_purge_all
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
projectIdOrName
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
+ +## Lifecycle Methods + + + + +No description available. + +```sql +EXEC vercel.cache.data_cache_purge_all.purge_all +@projectIdOrName='{{ projectIdOrName }}' --required +; +``` + + diff --git a/website/docs/services/cache/index.md b/website/docs/services/cache/index.md new file mode 100644 index 0000000..0546cb5 --- /dev/null +++ b/website/docs/services/cache/index.md @@ -0,0 +1,33 @@ +--- +title: cache +hide_title: false +hide_table_of_contents: false +keywords: + - cache + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +cache service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/certs/certs/index.md b/website/docs/services/certs/certs/index.md new file mode 100644 index 0000000..8b19ba8 --- /dev/null +++ b/website/docs/services/certs/certs/index.md @@ -0,0 +1,243 @@ +--- +title: certs +hide_title: false +hide_table_of_contents: false +keywords: + - certs + - certs + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a certs resource. + +## Overview + + + + +
Namecerts
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
boolean
array
number
number
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, teamIdGet cert by id
id, teamIdRemove cert
teamIdIssue a new cert
teamId, ca, key, certUpload a cert
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe cert id to remove
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Get cert by id + +```sql +SELECT +id, +autoRenew, +cns, +createdAt, +expiresAt +FROM vercel.certs.certs +WHERE id = '{{ id }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + + +## `DELETE` examples + + + + +Remove cert + +```sql +DELETE FROM vercel.certs.certs +WHERE id = '{{ id }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Issue a new cert + +```sql +EXEC vercel.certs.certs.issue_cert +@teamId='{{ teamId }}' --required +@@json= +'{ +"cns": "{{ cns }}" +}' +; +``` + + + +Upload a cert + +```sql +EXEC vercel.certs.certs.upload_cert +@teamId='{{ teamId }}' --required +@@json= +'{ +"ca": "{{ ca }}", +"key": "{{ key }}", +"cert": "{{ cert }}", +"skipValidation": {{ skipValidation }} +}' +; +``` + + diff --git a/website/docs/services/certs/index.md b/website/docs/services/certs/index.md new file mode 100644 index 0000000..5c5cf41 --- /dev/null +++ b/website/docs/services/certs/index.md @@ -0,0 +1,33 @@ +--- +title: certs +hide_title: false +hide_table_of_contents: false +keywords: + - certs + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +certs service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+
+certs +
+
+ +
+
\ No newline at end of file diff --git a/website/docs/services/checks/deployments/index.md b/website/docs/services/checks/deployments/index.md new file mode 100644 index 0000000..41fad5e --- /dev/null +++ b/website/docs/services/checks/deployments/index.md @@ -0,0 +1,522 @@ +--- +title: deployments +hide_title: false +hide_table_of_contents: false +keywords: + - deployments + - checks + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a deployments resource. + +## Overview + + + + +
Namedeployments
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
string
boolean
number
string
number
string
string
string
string
object
string
boolean
number
string
number
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
string
number
string
number
string
string
object
string
boolean
number
string
number
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
deploymentId, checkId, teamIdReturn a detailed response for a single check.
deploymentId, teamIdList all of the checks created for a deployment.
deploymentId, teamId, data__name, data__blockingCreates a new check. This endpoint must be called with an OAuth2 or it will produce a 400 error.
deploymentId, teamIdList all of the checks created for a deployment.
deploymentId, checkId, teamIdUpdate an existing check. This endpoint must be called with an OAuth2 or it will produce a 400 error.
deploymentId, checkId, teamIdRerequest a selected check that has failed.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe check to rerun
stringThe deployment to rerun the check for.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Return a detailed response for a single check. + +```sql +SELECT +id, +name, +blocking, +completedAt, +conclusion, +createdAt, +deploymentId, +detailsUrl, +externalId, +integrationId, +output, +path, +rerequestable, +startedAt, +status, +updatedAt +FROM vercel.checks.deployments +WHERE deploymentId = '{{ deploymentId }}' -- required +AND checkId = '{{ checkId }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + +List all of the checks created for a deployment. + +```sql +SELECT +id, +name, +completedAt, +conclusion, +createdAt, +detailsUrl, +integrationId, +output, +path, +rerequestable, +startedAt, +status, +updatedAt +FROM vercel.checks.deployments +WHERE deploymentId = '{{ deploymentId }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + + +## `INSERT` examples + + + + +Creates a new check. This endpoint must be called with an OAuth2 or it will produce a 400 error. + +```sql +INSERT INTO vercel.checks.deployments ( +data__name, +data__path, +data__blocking, +data__detailsUrl, +data__externalId, +data__rerequestable, +deploymentId, +teamId +) +SELECT +'{{ name }}' /* required */, +'{{ path }}', +{{ blocking }} /* required */, +'{{ detailsUrl }}', +'{{ externalId }}', +{{ rerequestable }}, +'{{ deploymentId }}', +'{{ teamId }}' +RETURNING +id, +name, +blocking, +completedAt, +conclusion, +createdAt, +deploymentId, +detailsUrl, +externalId, +integrationId, +output, +path, +rerequestable, +startedAt, +status, +updatedAt +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: deployments + props: + - name: deploymentId + value: string + description: Required parameter for the deployments resource. + - name: teamId + value: string + description: Required parameter for the deployments resource. + - name: name + value: string + description: | + The name of the check being created + - name: path + value: string + description: | + Path of the page that is being checked + - name: blocking + value: boolean + description: | + Whether the check should block a deployment from succeeding + - name: detailsUrl + value: string + description: | + URL to display for further details + - name: externalId + value: string + description: | + An identifier that can be used as an external reference + - name: rerequestable + value: boolean + description: | + Whether a user should be able to request for the check to be rerun if it fails +``` + + + + +## Lifecycle Methods + + + + +List all of the checks created for a deployment. + +```sql +EXEC vercel.checks.deployments._get_all_checks +@deploymentId='{{ deploymentId }}' --required, +@teamId='{{ teamId }}' --required +; +``` + + + +Update an existing check. This endpoint must be called with an OAuth2 or it will produce a 400 error. + +```sql +EXEC vercel.checks.deployments.update_check +@deploymentId='{{ deploymentId }}' --required, +@checkId='{{ checkId }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"name": "{{ name }}", +"path": "{{ path }}", +"status": "{{ status }}", +"conclusion": "{{ conclusion }}", +"detailsUrl": "{{ detailsUrl }}", +"output": "{{ output }}", +"externalId": "{{ externalId }}" +}' +; +``` + + + +Rerequest a selected check that has failed. + +```sql +EXEC vercel.checks.deployments.rerequest_check +@deploymentId='{{ deploymentId }}' --required, +@checkId='{{ checkId }}' --required, +@teamId='{{ teamId }}' --required +; +``` + + diff --git a/website/docs/services/checks/index.md b/website/docs/services/checks/index.md new file mode 100644 index 0000000..58f4f28 --- /dev/null +++ b/website/docs/services/checks/index.md @@ -0,0 +1,33 @@ +--- +title: checks +hide_title: false +hide_table_of_contents: false +keywords: + - checks + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +checks service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/deployments/builds/index.md b/website/docs/services/deployments/builds/index.md new file mode 100644 index 0000000..969b49d --- /dev/null +++ b/website/docs/services/deployments/builds/index.md @@ -0,0 +1,235 @@ +--- +title: builds +hide_title: false +hide_table_of_contents: false +keywords: + - builds + - deployments + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a builds resource. + +## Overview + + + + +
Namebuilds
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +An object representing a Build on Vercel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique identifier of the Build
objectAn object that contains the Build's configuration
string
numberThe time at which the Build was created
stringThe region where the Build was first created
numberThe time at which the Build was deployed
stringThe unique identifier of the deployment
stringThe entrypoint of the deployment
stringIf the Build uses the `@vercel/static` Runtime, it contains a hashed string of all outputs
arrayA list of outputs for the Build that can be either Serverless Functions or static files
stringThe state of the deployment depending on the process of deploying, or if it is ready or in an error state
numberThe time at which the Build state was last modified
numberThe time at which the Build was scheduled to be built
stringThe Runtime the Build used to generate the output
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
deploymentIdRetrieves the list of builds given their deployment's unique identifier. No longer listed as public API as of May 2023.
deploymentIdRetrieves the list of builds given their deployment's unique identifier. No longer listed as public API as of May 2023.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe deployment unique identifier
+ +## `SELECT` examples + + + + +Retrieves the list of builds given their deployment's unique identifier. No longer listed as public API as of May 2023. + +```sql +SELECT +id, +config, +copiedFrom, +createdAt, +createdIn, +deployedAt, +deploymentId, +entrypoint, +fingerprint, +output, +readyState, +readyStateAt, +scheduledAt, +use +FROM vercel.deployments.builds +WHERE deploymentId = '{{ deploymentId }}' -- required +; +``` + + + + +## Lifecycle Methods + + + + +Retrieves the list of builds given their deployment's unique identifier. No longer listed as public API as of May 2023. + +```sql +EXEC vercel.deployments.builds._get_builds_for_deployment +@deploymentId='{{ deploymentId }}' --required +; +``` + + diff --git a/website/docs/services/deployments/deployments/index.md b/website/docs/services/deployments/deployments/index.md new file mode 100644 index 0000000..2b9e519 --- /dev/null +++ b/website/docs/services/deployments/deployments/index.md @@ -0,0 +1,836 @@ +--- +title: deployments +hide_title: false +hide_table_of_contents: false +keywords: + - deployments + - deployments + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a deployments resource. + +## Overview + + + + +
Namedeployments
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The deployment including only public information
The deployment including both public and private information + + + + + + + + + + + +
NameDatatypeDescription
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the deployment. (example: docs)
objectAn error object in case aliasing of the deployment failed.
numberTimestamp of when the deployment started building at.
stringConclusion for checks
stringState of all registered checks
booleanThe flag saying if Vercel Connect configuration is used for builds
stringThe ID of Vercel Connect configuration used for this deployment
numberTimestamp of when the deployment got created.
numberTimestamp of when the deployment got created.
objectMetadata information of the user who created the deployment.
stringVercel URL to inspect the deployment. (example: https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq)
booleanDeployment can be used for instant rollback
objectMetadata information from the Git provider.
objectThe project settings which was used for this deployment
numberTimestamp of when the deployment got ready.
stringIn which state is the deployment. (example: READY)
stringSince June 2023 Substate of deployment when readyState is 'READY' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - PROMOTED: has seen production traffic
stringThe source of the deployment. (example: cli)
stringIn which state is the deployment. (example: READY)
stringOn which environment has the deployment been deployed to. (example: production)
stringThe type of the deployment. (example: LAMBDAS)
stringThe unique identifier of the deployment. (example: dpl_2euZBFqxYdDMDG1jTrHFnNZ2eUVa)
stringThe URL of the deployment. (example: docs-9jaeg38me.vercel.app)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
idOrUrl, teamIdwithGitRepoInfoRetrieves information for a deployment either by supplying its ID (`id` property) or Hostname (`url` property). Additional details will be included when the authenticated user or team is an owner of the deployment.
teamIdapp, from, limit, projectId, target, to, users, since, until, state, rollbackCandidateList deployments under the authenticated user or team. If a deployment hasn't finished uploading (is incomplete), the `url` property will have a value of `null`.
teamId, data__name, data__project, data__connection_uris, data__roles, data__databases, data__branch, data__endpoints, data__endpoint, data__database, data__role, data__password, data__projects, data__paginationforceNew, skipAutoDetectionConfirmationCreate a new deployment with all the required and intended data. If the deployment is not a git deployment, all files must be provided with the request, either referenced or inlined. Additionally, a deployment id can be specified to redeploy a previous deployment.
id, teamIdurlThis API allows you to delete a deployment, either by supplying its `id` in the URL or the `url` of the deployment as a query parameter. You can obtain the ID, for example, by listing all deployments.
id, teamIdThis endpoint allows you to cancel a deployment which is currently building, by supplying its `id` in the URL.
teamIdapp, from, limit, projectId, target, to, users, since, until, state, rollbackCandidateList deployments under the authenticated user or team. If a deployment hasn't finished uploading (is incomplete), the `url` property will have a value of `null`.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique identifier of the deployment.
stringThe unique identifier or hostname of the deployment.
stringThe Team identifier or slug to perform the request on behalf of.
stringName of the deployment.
Forces a new deployment even if there is a previous similar deployment
numberGets the deployment created after this Date timestamp. (default: current time)
numberMaximum number of deployments to list from a request.
stringFilter deployments from the given `projectId`.
booleanFilter deployments based on their rollback candidacy
numberGet Deployments created after this JavaScript timestamp.
Allows to skip framework detection so the API would not fail to ask for confirmation
stringFilter deployments based on their state (`BUILDING`, `ERROR`, `INITIALIZING`, `QUEUED`, `READY`, `CANCELED`)
stringFilter deployments based on the environment.
numberGets the deployment created before this Date timestamp. (default: current time)
numberGet Deployments created before this JavaScript timestamp.
stringA Deployment or Alias URL. In case it is passed, the ID will be ignored
stringFilter out deployments based on users who have created the deployment.
stringWhether to add in gitRepo information.
+ +## `SELECT` examples + + + + +Retrieves information for a deployment either by supplying its ID (`id` property) or Hostname (`url` property). Additional details will be included when the authenticated user or team is an owner of the deployment. + +```sql +SELECT +* +FROM vercel.deployments.deployments +WHERE idOrUrl = '{{ idOrUrl }}' -- required +AND teamId = '{{ teamId }}' -- required +AND withGitRepoInfo = '{{ withGitRepoInfo }}' +; +``` + + + +List deployments under the authenticated user or team. If a deployment hasn't finished uploading (is incomplete), the `url` property will have a value of `null`. + +```sql +SELECT +name, +aliasAssigned, +aliasError, +buildingAt, +checksConclusion, +checksState, +connectBuildsEnabled, +connectConfigurationId, +created, +createdAt, +creator, +inspectorUrl, +isRollbackCandidate, +meta, +projectSettings, +ready, +readyState, +readySubstate, +source, +state, +target, +type, +uid, +url +FROM vercel.deployments.deployments +WHERE teamId = '{{ teamId }}' -- required +AND app = '{{ app }}' +AND from = '{{ from }}' +AND limit = '{{ limit }}' +AND projectId = '{{ projectId }}' +AND target = '{{ target }}' +AND to = '{{ to }}' +AND users = '{{ users }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +AND state = '{{ state }}' +AND rollbackCandidate = '{{ rollbackCandidate }}' +; +``` + + + + +## `INSERT` examples + + + + +Create a new deployment with all the required and intended data. If the deployment is not a git deployment, all files must be provided with the request, either referenced or inlined. Additionally, a deployment id can be specified to redeploy a previous deployment. + +```sql +INSERT INTO vercel.deployments.deployments ( +data__$schema, +data__alias, +data__build, +data__builds, +data__cleanUrls, +data__env, +data__functions, +data__git, +data__headers, +data__images, +data__name, +data__public, +data__redirects, +data__regions, +data__rewrites, +data__routes, +data__trailingSlash, +data__buildCommand, +data__ignoreCommand, +data__devCommand, +data__framework, +data__installCommand, +data__outputDirectory, +data__crons, +data__deploymentId, +data__files, +data__gitMetadata, +data__gitSource, +data__meta, +data__monorepoManager, +data__project, +data__projectSettings, +data__target, +data__withLatestCommit, +data__connection_uris, +data__roles, +data__databases, +data__branch, +data__endpoints, +data__endpoint, +data__database, +data__role, +data__password, +data__projects, +data__pagination, +teamId, +forceNew, +skipAutoDetectionConfirmation +) +SELECT +'{{ $schema }}', +'{{ alias }}', +'{{ build }}', +'{{ builds }}', +{{ cleanUrls }}, +'{{ env }}', +'{{ functions }}', +'{{ git }}', +'{{ headers }}', +'{{ images }}', +'{{ name }}' /* required */, +{{ public }}, +'{{ redirects }}', +'{{ regions }}', +'{{ rewrites }}', +'{{ routes }}', +{{ trailingSlash }}, +'{{ buildCommand }}', +'{{ ignoreCommand }}', +'{{ devCommand }}', +'{{ framework }}', +'{{ installCommand }}', +'{{ outputDirectory }}', +'{{ crons }}', +'{{ deploymentId }}', +'{{ files }}', +'{{ gitMetadata }}', +'{{ gitSource }}', +'{{ meta }}', +'{{ monorepoManager }}', +'{{ project }}' /* required */, +'{{ projectSettings }}', +'{{ target }}', +{{ withLatestCommit }}, +'{{ connection_uris }}' /* required */, +'{{ roles }}' /* required */, +'{{ databases }}' /* required */, +'{{ branch }}' /* required */, +'{{ endpoints }}' /* required */, +'{{ endpoint }}' /* required */, +'{{ database }}' /* required */, +'{{ role }}' /* required */, +'{{ password }}' /* required */, +'{{ projects }}' /* required */, +'{{ pagination }}' /* required */, +'{{ teamId }}', +'{{ forceNew }}', +'{{ skipAutoDetectionConfirmation }}' +RETURNING +id, +name, +alias, +aliasAssigned, +aliasAssignedAt, +aliasError, +aliasFinal, +aliasWarning, +autoAssignCustomDomains, +automaticAliases, +bootedAt, +build, +buildErrorAt, +buildingAt, +builds, +canceledAt, +checksConclusion, +checksState, +connectBuildsEnabled, +connectConfigurationId, +createdAt, +createdIn, +creator, +env, +errorCode, +errorLink, +errorMessage, +errorStep, +functions, +gitRepo, +gitSource, +inspectorUrl, +isInConcurrentBuildsQueue, +lambdas, +meta, +monorepoManager, +ownerId, +plan, +previewCommentsEnabled, +projectId, +public, +readyState, +readySubstate, +regions, +routes, +source, +target, +team, +type, +url, +userAliases, +version +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: deployments + props: + - name: teamId + value: string + description: Required parameter for the deployments resource. + - name: $schema + value: string + description: | + Ignored. Can be set to get completions, validations and documentation in some editors. + - name: alias + value: array + description: | + Aliases that will get assigned when the deployment is `READY` and the target is `production`. The client needs to make a `GET` request to its API to ensure the assignment + - name: build + value: object + description: | + An object containing another object with information to be passed to the Build Process + - name: builds + value: array + description: | + A list of build descriptions whose src references valid source files. + - name: cleanUrls + value: boolean + description: | + When set to `true`, all HTML files and Serverless Functions will have their extension removed. When visiting a path that ends with the extension, a 308 response will redirect the client to the extensionless path. + - name: env + value: object + description: | + An object containing the deployment's environment variable names and values. Secrets can be referenced by prefixing the value with `@` + - name: functions + value: object + description: | + An object describing custom options for your Serverless Functions. Each key must be glob pattern that matches the paths of the Serverless Functions you would like to customize (like `api/*.js` or `api/test.js`). + - name: git + value: object + - name: headers + value: array + description: | + A list of header definitions. + - name: images + value: object + - name: name + value: string + description: | + A string with the project name used in the deployment URL + - name: public + value: boolean + description: | + Whether a deployment's source and logs are available publicly + - name: redirects + value: array + description: | + A list of redirect definitions. + - name: regions + value: array + description: | + An array of the regions the deployment's Serverless Functions should be deployed to + - name: rewrites + value: array + description: | + A list of rewrite definitions. + - name: routes + value: array + description: | + A list of routes objects used to rewrite paths to point towards other internal or external paths + - name: trailingSlash + value: boolean + description: | + When `false`, visiting a path that ends with a forward slash will respond with a `308` status code and redirect to the path without the trailing slash. + - name: buildCommand + value: string + description: | + The build command for this project. When `null` is used this value will be automatically detected + - name: ignoreCommand + value: string + - name: devCommand + value: string + description: | + The dev command for this project. When `null` is used this value will be automatically detected + - name: framework + value: string + description: | + The framework that is being used for this project. When `null` is used no framework is selected + valid_values: ['', 'blitzjs', 'nextjs', 'gatsby', 'remix', 'astro', 'hexo', 'eleventy', 'docusaurus-2', 'docusaurus', 'preact', 'solidstart', 'dojo', 'ember', 'vue', 'scully', 'ionic-angular', 'angular', 'polymer', 'svelte', 'sveltekit', 'sveltekit-1', 'ionic-react', 'create-react-app', 'gridsome', 'umijs', 'sapper', 'saber', 'stencil', 'nuxtjs', 'redwoodjs', 'hugo', 'jekyll', 'brunch', 'middleman', 'zola', 'hydrogen', 'vite', 'vitepress', 'vuepress', 'parcel', 'sanity', 'storybook'] + - name: installCommand + value: string + description: | + The install command for this project. When `null` is used this value will be automatically detected + - name: outputDirectory + value: string + description: | + The output directory of the project. When `null` is used this value will be automatically detected + - name: crons + value: array + description: | + An array of cron jobs that should be created for production Deployments. + - name: deploymentId + value: string + description: | + An deployment id for an existing deployment to redeploy + - name: files + value: array + description: | + A list of objects with the files to be deployed + - name: gitMetadata + value: object + description: | + Populates initial git metadata for different git providers. + - name: gitSource + value: string + description: | + Defines the Git Repository source to be deployed. This property can not be used in combination with `files`. + - name: meta + value: object + description: | + An object containing the deployment's metadata. Multiple key-value pairs can be attached to a deployment + - name: monorepoManager + value: string + description: | + The monorepo manager that is being used for this deployment. When `null` is used no monorepo manager is selected + - name: project + value: object + - name: projectSettings + value: object + description: | + Project settings that will be applied to the deployment. It is required for the first deployment of a project and will be saved for any following deployments + - name: target + value: string + description: | + Either not defined, `staging`, or `production`. If `staging`, a staging alias in the format `-.vercel.app` will be assigned. If `production`, any aliases defined in `alias` will be assigned. If omitted, the target will be `preview` + valid_values: ['staging', 'production'] + - name: withLatestCommit + value: boolean + description: | + When `true` and `deploymentId` is passed in, the sha from the previous deployment's `gitSource` is removed forcing the latest commit to be used. + - name: connection_uris + value: array + - name: roles + value: array + - name: databases + value: array + - name: branch + value: object + - name: endpoints + value: array + - name: endpoint + value: object + - name: database + value: object + - name: role + value: object + - name: password + value: string + - name: projects + value: array + - name: pagination + value: object + - name: forceNew + value: string + description: Forces a new deployment even if there is a previous similar deployment + - name: skipAutoDetectionConfirmation + value: string + description: Allows to skip framework detection so the API would not fail to ask for confirmation +``` + + + + +## `DELETE` examples + + + + +This API allows you to delete a deployment, either by supplying its `id` in the URL or the `url` of the deployment as a query parameter. You can obtain the ID, for example, by listing all deployments. + +```sql +DELETE FROM vercel.deployments.deployments +WHERE id = '{{ id }}' --required +AND teamId = '{{ teamId }}' --required +AND url = '{{ url }}' +; +``` + + + + +## Lifecycle Methods + + + + +This endpoint allows you to cancel a deployment which is currently building, by supplying its `id` in the URL. + +```sql +EXEC vercel.deployments.deployments.cancel_deployment +@id='{{ id }}' --required, +@teamId='{{ teamId }}' --required +; +``` + + + +List deployments under the authenticated user or team. If a deployment hasn't finished uploading (is incomplete), the `url` property will have a value of `null`. + +```sql +EXEC vercel.deployments.deployments._get_deployments +@teamId='{{ teamId }}' --required, +@app='{{ app }}', +@from='{{ from }}', +@limit='{{ limit }}', +@projectId='{{ projectId }}', +@target='{{ target }}', +@to='{{ to }}', +@users='{{ users }}', +@since='{{ since }}', +@until='{{ until }}', +@state='{{ state }}', +@rollbackCandidate={{ rollbackCandidate }} +; +``` + + diff --git a/website/docs/services/deployments/events/index.md b/website/docs/services/deployments/events/index.md new file mode 100644 index 0000000..95ef89a --- /dev/null +++ b/website/docs/services/deployments/events/index.md @@ -0,0 +1,184 @@ +--- +title: events +hide_title: false +hide_table_of_contents: false +keywords: + - events + - deployments + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an events resource. + +## Overview + + + + +
Nameevents
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A stream of jsonlines where each line is a deployment log item.
Array of deployment logs for the provided query. + + + + + + + + + + + +
NameDatatypeDescription
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
idOrUrl, teamIddirection, follow, limit, name, since, until, statusCode, delimiter, buildsGet the build logs of a deployment by deployment ID and build ID. It can work as an infinite stream of logs or as a JSON endpoint depending on the input parameters.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique identifier or hostname of the deployment.
stringThe Team identifier or slug to perform the request on behalf of.
number
number
stringOrder of the returned events based on the timestamp.
numberWhen enabled, this endpoint will return live events as they happen.
numberMaximum number of events to return. Provide `-1` to return all available logs.
stringDeployment build ID.
numberTimestamp for when build logs should be pulled from.
HTTP status code range to filter events by.
numberTimestamp for when the build logs should be pulled up until.
+ +## `SELECT` examples + + + + +Get the build logs of a deployment by deployment ID and build ID. It can work as an infinite stream of logs or as a JSON endpoint depending on the input parameters. + +```sql +SELECT +* +FROM vercel.deployments.events +WHERE idOrUrl = '{{ idOrUrl }}' -- required +AND teamId = '{{ teamId }}' -- required +AND direction = '{{ direction }}' +AND follow = '{{ follow }}' +AND limit = '{{ limit }}' +AND name = '{{ name }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +AND statusCode = '{{ statusCode }}' +AND delimiter = '{{ delimiter }}' +AND builds = '{{ builds }}' +; +``` + + diff --git a/website/docs/services/deployments/files/index.md b/website/docs/services/deployments/files/index.md new file mode 100644 index 0000000..0adf659 --- /dev/null +++ b/website/docs/services/deployments/files/index.md @@ -0,0 +1,254 @@ +--- +title: files +hide_title: false +hide_table_of_contents: false +keywords: + - files + - deployments + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a files resource. + +## Overview + + + + +
Namefiles
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Retrieved the file tree successfully + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the file tree entry (example: my-file.json)
arrayThe list of children files of the directory (only valid for the `directory` type)
stringThe content-type of the file (only valid for the `file` type) (example: application/json)
numberThe file "mode" indicating file type and permissions.
stringNot currently used. See `file-list-to-tree.ts`.
stringString indicating the type of file tree entry. (example: file)
stringThe unique identifier of the file (only valid for the `file` type) (example: 2d4aad419917f15b1146e9e03ddc9bb31747e4d0)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, teamIdAllows to retrieve the file structure of a deployment by supplying the deployment unique identifier.
teamIdContent-Length, x-vercel-digest, x-now-digest, x-now-sizeBefore you create a deployment you need to upload the required files for that deployment. To do it, you need to first upload each file to this endpoint. Once that's completed, you can create a new deployment with the uploaded files. The file content must be placed inside the body of the request. In the case of a successful response you'll receive a status code 200 with an empty body.
id, fileId, teamIdpathAllows to retrieve the content of a file by supplying the file identifier and the deployment unique identifier. The response body will contain the raw content of the file.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique file identifier
stringThe unique deployment identifier
stringThe Team identifier or slug to perform the request on behalf of.
numberThe file size in bytes
stringPath to the file to fetch (only for Git deployments)
stringThe file SHA1 used to check the integrity
numberThe file size as an alternative to `Content-Length`
stringThe file SHA1 used to check the integrity
+ +## `SELECT` examples + + + + +Allows to retrieve the file structure of a deployment by supplying the deployment unique identifier. + +```sql +SELECT +name, +children, +contentType, +mode, +symlink, +type, +uid +FROM vercel.deployments.files +WHERE id = '{{ id }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + + +## Lifecycle Methods + + + + +Before you create a deployment you need to upload the required files for that deployment. To do it, you need to first upload each file to this endpoint. Once that's completed, you can create a new deployment with the uploaded files. The file content must be placed inside the body of the request. In the case of a successful response you'll receive a status code 200 with an empty body. + +```sql +EXEC vercel.deployments.files.upload_file +@teamId='{{ teamId }}' --required, +@Content-Length='{{ Content-Length }}', +@x-vercel-digest='{{ x-vercel-digest }}', +@x-now-digest='{{ x-now-digest }}', +@x-now-size='{{ x-now-size }}' +; +``` + + + +Allows to retrieve the content of a file by supplying the file identifier and the deployment unique identifier. The response body will contain the raw content of the file. + +```sql +EXEC vercel.deployments.files.get_deployment_file_contents +@id='{{ id }}' --required, +@fileId='{{ fileId }}' --required, +@teamId='{{ teamId }}' --required, +@path='{{ path }}' +; +``` + + diff --git a/website/docs/services/deployments/index.md b/website/docs/services/deployments/index.md new file mode 100644 index 0000000..91748cc --- /dev/null +++ b/website/docs/services/deployments/index.md @@ -0,0 +1,35 @@ +--- +title: deployments +hide_title: false +hide_table_of_contents: false +keywords: + - deployments + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +deployments service documentation. + +:::info[Service Summary] + +total resources: __4__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/dns/domains_records/index.md b/website/docs/services/dns/domains_records/index.md new file mode 100644 index 0000000..7f00b87 --- /dev/null +++ b/website/docs/services/dns/domains_records/index.md @@ -0,0 +1,323 @@ +--- +title: domains_records +hide_title: false +hide_table_of_contents: false +keywords: + - domains_records + - dns + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a domains_records resource. + +## Overview + + + + +
Namedomains_records
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successful response retrieving a list of paginated DNS records. + + + + + + + + + + + +
NameDatatypeDescription
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
domain, teamIdlimit, since, untilRetrieves a list of DNS records created for a domain name. By default it returns 20 records if no limit is provided. The rest can be retrieved using the pagination options.
domain, teamId, data__type, data__value, data__nameCreates a DNS record for a domain.
domain, recordId, teamIdRemoves an existing DNS record from a domain name.
domain, teamIdlimit, since, untilRetrieves a list of DNS records created for a domain name. By default it returns 20 records if no limit is provided. The rest can be retrieved using the pagination options.
recordId, teamIdUpdates an existing DNS record for a domain name.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
stringThe id of the DNS record
stringThe Team identifier or slug to perform the request on behalf of.
stringMaximum number of records to list from a request.
stringGet records created after this JavaScript timestamp.
stringGet records created before this JavaScript timestamp.
+ +## `SELECT` examples + + + + +Retrieves a list of DNS records created for a domain name. By default it returns 20 records if no limit is provided. The rest can be retrieved using the pagination options. + +```sql +SELECT +* +FROM vercel.dns.domains_records +WHERE domain = '{{ domain }}' -- required +AND teamId = '{{ teamId }}' -- required +AND limit = '{{ limit }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +; +``` + + + + +## `INSERT` examples + + + + +Creates a DNS record for a domain. + +```sql +INSERT INTO vercel.dns.domains_records ( +data__name, +data__type, +data__ttl, +data__value, +data__comment, +domain, +teamId +) +SELECT +'{{ name }}' /* required */, +'{{ type }}' /* required */, +{{ ttl }}, +'{{ value }}' /* required */, +'{{ comment }}', +'{{ domain }}', +'{{ teamId }}' +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: domains_records + props: + - name: domain + value: string + description: Required parameter for the domains_records resource. + - name: teamId + value: string + description: Required parameter for the domains_records resource. + - name: name + value: string + description: | + A subdomain name or an empty string for the root domain. + - name: type + value: string + description: | + Must be of type `A`. + valid_values: ['A'] + - name: ttl + value: number + description: | + The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + - name: value + value: string + description: | + The record value must be a valid IPv4 address. + - name: comment + value: string + description: | + A comment to add context on what this DNS record is for +``` + + + + +## `DELETE` examples + + + + +Removes an existing DNS record from a domain name. + +```sql +DELETE FROM vercel.dns.domains_records +WHERE domain = '{{ domain }}' --required +AND recordId = '{{ recordId }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Retrieves a list of DNS records created for a domain name. By default it returns 20 records if no limit is provided. The rest can be retrieved using the pagination options. + +```sql +EXEC vercel.dns.domains_records._get_records +@domain='{{ domain }}' --required, +@teamId='{{ teamId }}' --required, +@limit='{{ limit }}', +@since='{{ since }}', +@until='{{ until }}' +; +``` + + + +Updates an existing DNS record for a domain name. + +```sql +EXEC vercel.dns.domains_records.update_record +@recordId='{{ recordId }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"name": "{{ name }}", +"value": "{{ value }}", +"type": "{{ type }}", +"ttl": {{ ttl }}, +"mxPriority": {{ mxPriority }}, +"srv": "{{ srv }}", +"comment": "{{ comment }}" +}' +; +``` + + diff --git a/website/docs/services/dns/index.md b/website/docs/services/dns/index.md new file mode 100644 index 0000000..42aa47c --- /dev/null +++ b/website/docs/services/dns/index.md @@ -0,0 +1,33 @@ +--- +title: dns +hide_title: false +hide_table_of_contents: false +keywords: + - dns + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +dns service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/domains/config/index.md b/website/docs/services/domains/config/index.md new file mode 100644 index 0000000..29f7cb9 --- /dev/null +++ b/website/docs/services/domains/config/index.md @@ -0,0 +1,145 @@ +--- +title: config +hide_title: false +hide_table_of_contents: false +keywords: + - config + - domains + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a config resource. + +## Overview + + + + +
Nameconfig
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayWhich challenge types the domain can use for issuing certs.
stringHow we see the domain's configuration. - `CNAME`: Domain has a CNAME pointing to Vercel. - `A`: Domain's A record is resolving to Vercel. - `http`: Domain is resolving to Vercel but may be behind a Proxy. - `null`: Domain is not resolving to Vercel.
booleanWhether or not the domain is configured AND we can automatically generate a TLS certificate.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
domain, teamIdGet a Domain's configuration.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the domain.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Get a Domain's configuration. + +```sql +SELECT +acceptedChallenges, +configuredBy, +misconfigured +FROM vercel.domains.config +WHERE domain = '{{ domain }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + diff --git a/website/docs/services/domains/domain_registry/index.md b/website/docs/services/domains/domain_registry/index.md new file mode 100644 index 0000000..b96cbe7 --- /dev/null +++ b/website/docs/services/domains/domain_registry/index.md @@ -0,0 +1,151 @@ +--- +title: domain_registry +hide_title: false +hide_table_of_contents: false +keywords: + - domain_registry + - domains + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a domain_registry resource. + +## Overview + + + + +
Namedomain_registry
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringDescription associated with transferable state.
stringThe current state of an ongoing transfer. `pending_owner`: Awaiting approval by domain's admin contact (every transfer begins with this status). If approval is not given within five days, the transfer is cancelled. `pending_admin`: Waiting for approval by Vercel Registrar admin. `pending_registry`: Awaiting registry approval (the transfer completes after 7 days unless it is declined by the current registrar). `completed`: The transfer completed successfully. `cancelled`: The transfer was cancelled. `undef`: No transfer exists for this domain. `unknown`: This TLD is not supported by Vercel's Registrar.
stringThe domain's transfer policy (depends on TLD requirements). `charge-and-renew`: transfer will charge for renewal and will renew the existing domain's registration. `no-charge-no-change`: transfer will have no change to registration period and does not require charge. `no-change`: transfer charge is required, but no change in registration period. `new-term`: transfer charge is required and a new registry term is set based on the transfer date. `not-supported`: transfers are not supported for this domain or TLD. `null`: This TLD is not supported by Vercel's Registrar.
booleanWhether or not the domain is transferable
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
domain, teamIdFetch domain transfer availability or transfer status if a transfer is in progress.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the domain.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Fetch domain transfer availability or transfer status if a transfer is in progress. + +```sql +SELECT +reason, +status, +transferPolicy, +transferable +FROM vercel.domains.domain_registry +WHERE domain = '{{ domain }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + diff --git a/website/docs/services/domains/domains/index.md b/website/docs/services/domains/domains/index.md new file mode 100644 index 0000000..de6db32 --- /dev/null +++ b/website/docs/services/domains/domains/index.md @@ -0,0 +1,565 @@ +--- +title: domains +hide_title: false +hide_table_of_contents: false +keywords: + - domains + - domains + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a domains resource. + +## Overview + + + + +
Namedomains
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successful response retrieving an information for a specific domains. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique identifier of the domain. (example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1)
stringThe domain name. (example: example.com)
numberIf it was purchased through Vercel, the timestamp in milliseconds when it was purchased.
numberTimestamp in milliseconds when the domain was created in the registry.
objectAn object containing information of the domain creator, including the user's id, username, and email.
arrayA list of custom nameservers for the domain to point to. Only applies to domains purchased with Vercel.
numberTimestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel.
arrayA list of the intended nameservers for the domain to point to Vercel DNS.
arrayA list of the current nameservers of the domain.
numberTimestamp in milliseconds at which the domain was ordered.
booleanIndicates whether the domain is set to automatically renew.
stringThe type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available. (example: zeit.world)
boolean
numberIf transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.
numberTimestamp in milliseconds at which the domain was successfully transferred into Vercel. `null` if the transfer is still processing or was never transferred in.
booleanIf the domain has the ownership verified.
+
+ + +Successful response retrieving a list of domains. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique identifier of the domain. (example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1)
stringThe domain name. (example: example.com)
numberIf it was purchased through Vercel, the timestamp in milliseconds when it was purchased.
numberTimestamp in milliseconds when the domain was created in the registry.
objectAn object containing information of the domain creator, including the user's id, username, and email.
arrayA list of custom nameservers for the domain to point to. Only applies to domains purchased with Vercel.
numberTimestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel.
arrayA list of the intended nameservers for the domain to point to Vercel DNS.
arrayA list of the current nameservers of the domain.
numberTimestamp in milliseconds at which the domain was ordered.
booleanIndicates whether the domain is set to automatically renew.
stringThe type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available. (example: zeit.world)
numberIf transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.
numberTimestamp in milliseconds at which the domain was successfully transferred into Vercel. `null` if the transfer is still processing or was never transferred in.
booleanIf the domain has the ownership verified.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
domain, teamIdGet information for a single domain in an account or team.
teamIdlimit, since, untilRetrieves a list of domains registered for the authenticated user or team. By default it returns the last 20 domains if no limit is provided.
teamId, data__nameThis endpoint is used for adding a new apex domain name with Vercel for the authenticating user. Can also be used for initiating a domain transfer request from an external Registrar to Vercel.
domain, teamIdDelete a previously registered domain name from Vercel. Deleting a domain will automatically remove any associated aliases.
teamId, nameAllows to purchase the specified domain.
domain, teamIdGet information for a single domain in an account or team.
teamIdlimit, since, untilRetrieves a list of domains registered for the authenticated user or team. By default it returns the last 20 domains if no limit is provided.
domain, teamIdUpdate or move apex domain.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the domain.
stringThe Team identifier or slug to perform the request on behalf of.
numberMaximum number of domains to list from a request.
numberGet domains created after this JavaScript timestamp.
numberGet domains created before this JavaScript timestamp.
+ +## `SELECT` examples + + + + +Get information for a single domain in an account or team. + +```sql +SELECT +id, +name, +boughtAt, +createdAt, +creator, +customNameservers, +expiresAt, +intendedNameservers, +nameservers, +orderedAt, +renew, +serviceType, +suffix, +transferStartedAt, +transferredAt, +verified +FROM vercel.domains.domains +WHERE domain = '{{ domain }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + +Retrieves a list of domains registered for the authenticated user or team. By default it returns the last 20 domains if no limit is provided. + +```sql +SELECT +id, +name, +boughtAt, +createdAt, +creator, +customNameservers, +expiresAt, +intendedNameservers, +nameservers, +orderedAt, +renew, +serviceType, +transferStartedAt, +transferredAt, +verified +FROM vercel.domains.domains +WHERE teamId = '{{ teamId }}' -- required +AND limit = '{{ limit }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +; +``` + + + + +## `INSERT` examples + + + + +This endpoint is used for adding a new apex domain name with Vercel for the authenticating user. Can also be used for initiating a domain transfer request from an external Registrar to Vercel. + +```sql +INSERT INTO vercel.domains.domains ( +data__name, +data__cdnEnabled, +data__zone, +data__method, +teamId +) +SELECT +'{{ name }}' /* required */, +{{ cdnEnabled }}, +{{ zone }}, +'{{ method }}', +'{{ teamId }}' +RETURNING +domain +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: domains + props: + - name: teamId + value: string + description: Required parameter for the domains resource. + - name: name + value: string + description: | + The domain name you want to add. + - name: cdnEnabled + value: boolean + description: | + Whether the domain has the Vercel Edge Network enabled or not. + - name: zone + value: boolean + - name: method + value: string + description: | + The domain operation to perform. +``` + + + + +## `DELETE` examples + + + + +Delete a previously registered domain name from Vercel. Deleting a domain will automatically remove any associated aliases. + +```sql +DELETE FROM vercel.domains.domains +WHERE domain = '{{ domain }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Allows to purchase the specified domain. + +```sql +EXEC vercel.domains.domains.buy_domain +@teamId='{{ teamId }}' --required +@@json= +'{ +"name": "{{ name }}", +"expectedPrice": {{ expectedPrice }}, +"renew": {{ renew }} +}' +; +``` + + + +Get information for a single domain in an account or team. + +```sql +EXEC vercel.domains.domains._get_domain +@domain='{{ domain }}' --required, +@teamId='{{ teamId }}' --required +; +``` + + + +Retrieves a list of domains registered for the authenticated user or team. By default it returns the last 20 domains if no limit is provided. + +```sql +EXEC vercel.domains.domains._get_domains +@teamId='{{ teamId }}' --required, +@limit='{{ limit }}', +@since='{{ since }}', +@until='{{ until }}' +; +``` + + + +Update or move apex domain. + +```sql +EXEC vercel.domains.domains.patch_domain +@domain='{{ domain }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"op": "{{ op }}", +"renew": {{ renew }}, +"customNameservers": "{{ customNameservers }}", +"zone": {{ zone }} +}' +; +``` + + diff --git a/website/docs/services/domains/index.md b/website/docs/services/domains/index.md new file mode 100644 index 0000000..caf09ac --- /dev/null +++ b/website/docs/services/domains/index.md @@ -0,0 +1,36 @@ +--- +title: domains +hide_title: false +hide_table_of_contents: false +keywords: + - domains + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +domains service documentation. + +:::info[Service Summary] + +total resources: __5__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/domains/price/index.md b/website/docs/services/domains/price/index.md new file mode 100644 index 0000000..aefda06 --- /dev/null +++ b/website/docs/services/domains/price/index.md @@ -0,0 +1,147 @@ +--- +title: price +hide_title: false +hide_table_of_contents: false +keywords: + - price + - domains + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a price resource. + +## Overview + + + + +
Nameprice
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successful response which returns the price of the domain and the period. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
numberThe number of years the domain could be held before paying again.
numberThe domain price in USD.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
name, teamIdtypeCheck the price to purchase a domain and how long a single purchase period is.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the domain for which the price needs to be checked.
stringThe Team identifier or slug to perform the request on behalf of.
stringIn which status of the domain the price needs to be checked.
+ +## `SELECT` examples + + + + +Check the price to purchase a domain and how long a single purchase period is. + +```sql +SELECT +period, +price +FROM vercel.domains.price +WHERE name = '{{ name }}' -- required +AND teamId = '{{ teamId }}' -- required +AND type = '{{ type }}' +; +``` + + diff --git a/website/docs/services/domains/status/index.md b/website/docs/services/domains/status/index.md new file mode 100644 index 0000000..3009b38 --- /dev/null +++ b/website/docs/services/domains/status/index.md @@ -0,0 +1,135 @@ +--- +title: status +hide_title: false +hide_table_of_contents: false +keywords: + - status + - domains + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a status resource. + +## Overview + + + + +
Namestatus
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successful response checking if a Domain's name is available. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
boolean
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
name, teamIdCheck if a domain name is available for purchase.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the domain for which we would like to check the status.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Check if a domain name is available for purchase. + +```sql +SELECT +available +FROM vercel.domains.status +WHERE name = '{{ name }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + diff --git a/website/docs/services/edge_config/edge_config/index.md b/website/docs/services/edge_config/edge_config/index.md new file mode 100644 index 0000000..48d53f8 --- /dev/null +++ b/website/docs/services/edge_config/edge_config/index.md @@ -0,0 +1,386 @@ +--- +title: edge_config +hide_title: false +hide_table_of_contents: false +keywords: + - edge_config + - edge_config + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an edge_config resource. + +## Overview + + + + +
Nameedge_config
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The EdgeConfig. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
number
string
number
string
number
stringName for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores).
objectKeeps track of the current state of the Edge Config while it gets transferred.
number
+
+ + +List of all edge configs. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
number
string
number
string
number
stringName for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores).
objectKeeps track of the current state of the Edge Config while it gets transferred.
number
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
edgeConfigId, teamIdReturns an Edge Config.
teamIdReturns all Edge Configs.
teamId, data__slugCreates an Edge Config.
edgeConfigId, teamIdDelete an Edge Config by id.
edgeConfigId, teamId, slugUpdates an Edge Config.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringEdge config id.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Returns an Edge Config. + +```sql +SELECT +id, +createdAt, +digest, +itemCount, +ownerId, +sizeInBytes, +slug, +transfer, +updatedAt +FROM vercel.edge_config.edge_config +WHERE edgeConfigId = '{{ edgeConfigId }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + +Returns all Edge Configs. + +```sql +SELECT +id, +createdAt, +digest, +itemCount, +ownerId, +sizeInBytes, +slug, +transfer, +updatedAt +FROM vercel.edge_config.edge_config +WHERE teamId = '{{ teamId }}' -- required +; +``` + + + + +## `INSERT` examples + + + + +Creates an Edge Config. + +```sql +INSERT INTO vercel.edge_config.edge_config ( +data__slug, +data__items, +teamId +) +SELECT +'{{ slug }}' /* required */, +'{{ items }}', +'{{ teamId }}' +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: edge_config + props: + - name: teamId + value: string + description: Required parameter for the edge_config resource. + - name: slug + value: string + - name: items + value: object +``` + + + + +## `DELETE` examples + + + + +Delete an Edge Config by id. + +```sql +DELETE FROM vercel.edge_config.edge_config +WHERE edgeConfigId = '{{ edgeConfigId }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Updates an Edge Config. + +```sql +EXEC vercel.edge_config.edge_config.update_edge_config +@edgeConfigId='{{ edgeConfigId }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"slug": "{{ slug }}" +}' +; +``` + + diff --git a/website/docs/services/edge_config/index.md b/website/docs/services/edge_config/index.md new file mode 100644 index 0000000..8eadc15 --- /dev/null +++ b/website/docs/services/edge_config/index.md @@ -0,0 +1,36 @@ +--- +title: edge_config +hide_title: false +hide_table_of_contents: false +keywords: + - edge_config + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +edge_config service documentation. + +:::info[Service Summary] + +total resources: __5__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/edge_config/item/index.md b/website/docs/services/edge_config/item/index.md new file mode 100644 index 0000000..ef671b0 --- /dev/null +++ b/website/docs/services/edge_config/item/index.md @@ -0,0 +1,165 @@ +--- +title: item +hide_title: false +hide_table_of_contents: false +keywords: + - item + - edge_config + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an item resource. + +## Overview + + + + +
Nameitem
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The EdgeConfig. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
number
string
string
number
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
edgeConfigId, edgeConfigItemKey, teamIdReturns a specific Edge Config Item.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringEdge config id.
stringEdge config id item key.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Returns a specific Edge Config Item. + +```sql +SELECT +createdAt, +edgeConfigId, +key, +updatedAt, +value +FROM vercel.edge_config.item +WHERE edgeConfigId = '{{ edgeConfigId }}' -- required +AND edgeConfigItemKey = '{{ edgeConfigItemKey }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + diff --git a/website/docs/services/edge_config/items/index.md b/website/docs/services/edge_config/items/index.md new file mode 100644 index 0000000..f01f257 --- /dev/null +++ b/website/docs/services/edge_config/items/index.md @@ -0,0 +1,192 @@ +--- +title: items +hide_title: false +hide_table_of_contents: false +keywords: + - items + - edge_config + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an items resource. + +## Overview + + + + +
Nameitems
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The EdgeConfig. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
number
string
string
number
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
edgeConfigId, teamIdReturns all items of an Edge Config.
edgeConfigId, teamId, itemsUpdate multiple Edge Config Items in batch.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringEdge config id.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Returns all items of an Edge Config. + +```sql +SELECT +createdAt, +edgeConfigId, +key, +updatedAt, +value +FROM vercel.edge_config.items +WHERE edgeConfigId = '{{ edgeConfigId }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + + +## Lifecycle Methods + + + + +Update multiple Edge Config Items in batch. + +```sql +EXEC vercel.edge_config.items.patcht_edge_config_items +@edgeConfigId='{{ edgeConfigId }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"items": "{{ items }}" +}' +; +``` + + diff --git a/website/docs/services/edge_config/token/index.md b/website/docs/services/edge_config/token/index.md new file mode 100644 index 0000000..7d90f5c --- /dev/null +++ b/website/docs/services/edge_config/token/index.md @@ -0,0 +1,217 @@ +--- +title: token +hide_title: false +hide_table_of_contents: false +keywords: + - token + - edge_config + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a token resource. + +## Overview + + + + +
Nametoken
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The EdgeConfig. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThis is not the token itself, but rather an id to identify the token by
number
string
string
string
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
edgeConfigId, token, teamIdReturn meta data about an Edge Config token.
edgeConfigId, teamId, data__labelAdds a token to an existing Edge Config.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringEdge config id.
stringThe Team identifier or slug to perform the request on behalf of.
string
+ +## `SELECT` examples + + + + +Return meta data about an Edge Config token. + +```sql +SELECT +id, +createdAt, +edgeConfigId, +label, +token +FROM vercel.edge_config.token +WHERE edgeConfigId = '{{ edgeConfigId }}' -- required +AND token = '{{ token }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + + +## `INSERT` examples + + + + +Adds a token to an existing Edge Config. + +```sql +INSERT INTO vercel.edge_config.token ( +data__label, +edgeConfigId, +teamId +) +SELECT +'{{ label }}' /* required */, +'{{ edgeConfigId }}', +'{{ teamId }}' +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: token + props: + - name: edgeConfigId + value: string + description: Required parameter for the token resource. + - name: teamId + value: string + description: Required parameter for the token resource. + - name: label + value: string +``` + + diff --git a/website/docs/services/edge_config/tokens/index.md b/website/docs/services/edge_config/tokens/index.md new file mode 100644 index 0000000..cc0c08f --- /dev/null +++ b/website/docs/services/edge_config/tokens/index.md @@ -0,0 +1,188 @@ +--- +title: tokens +hide_title: false +hide_table_of_contents: false +keywords: + - tokens + - edge_config + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a tokens resource. + +## Overview + + + + +
Nametokens
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The EdgeConfig. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThis is not the token itself, but rather an id to identify the token by
number
string
string
string
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
edgeConfigId, teamIdReturns all tokens of an Edge Config.
edgeConfigId, teamIdDeletes one or more tokens of an existing Edge Config.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringEdge config id.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `SELECT` examples + + + + +Returns all tokens of an Edge Config. + +```sql +SELECT +id, +createdAt, +edgeConfigId, +label, +token +FROM vercel.edge_config.tokens +WHERE edgeConfigId = '{{ edgeConfigId }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + + +## `DELETE` examples + + + + +Deletes one or more tokens of an existing Edge Config. + +```sql +DELETE FROM vercel.edge_config.tokens +WHERE edgeConfigId = '{{ edgeConfigId }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + diff --git a/website/docs/services/integrations/configuration/index.md b/website/docs/services/integrations/configuration/index.md new file mode 100644 index 0000000..dfe46fa --- /dev/null +++ b/website/docs/services/integrations/configuration/index.md @@ -0,0 +1,200 @@ +--- +title: configuration +hide_title: false +hide_table_of_contents: false +keywords: + - configuration + - integrations + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a configuration resource. + +## Overview + + + + +
Nameconfiguration
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + +
NameDatatypeDescription
+
+ + +The list of configurations for the authenticated user + + + + + + + + + + + +
NameDatatypeDescription
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, teamIdAllows to retrieve a the configuration with the provided id in case it exists. The authenticated user or team must be the owner of the config in order to access it.
view, teamIdAllows to retrieve all configurations for an authenticated integration. When the `project` view is used, configurations generated for the authorization flow will be filtered out of the results.
id, teamIdAllows to remove the configuration with the `id` provided in the parameters. The configuration and all of its resources will be removed. This includes Webhooks, LogDrains and Project Env variables.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringID of the configuration to delete
stringThe Team identifier or slug to perform the request on behalf of.
string
+ +## `SELECT` examples + + + + +Allows to retrieve a the configuration with the provided id in case it exists. The authenticated user or team must be the owner of the config in order to access it. + +```sql +SELECT +* +FROM vercel.integrations.configuration +WHERE id = '{{ id }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + +Allows to retrieve all configurations for an authenticated integration. When the `project` view is used, configurations generated for the authorization flow will be filtered out of the results. + +```sql +SELECT +* +FROM vercel.integrations.configuration +WHERE view = '{{ view }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + + +## `DELETE` examples + + + + +Allows to remove the configuration with the `id` provided in the parameters. The configuration and all of its resources will be removed. This includes Webhooks, LogDrains and Project Env variables. + +```sql +DELETE FROM vercel.integrations.configuration +WHERE id = '{{ id }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + diff --git a/website/docs/services/integrations/git_namespaces/index.md b/website/docs/services/integrations/git_namespaces/index.md new file mode 100644 index 0000000..7bdd67d --- /dev/null +++ b/website/docs/services/integrations/git_namespaces/index.md @@ -0,0 +1,181 @@ +--- +title: git_namespaces +hide_title: false +hide_table_of_contents: false +keywords: + - git_namespaces + - integrations + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a git_namespaces resource. + +## Overview + + + + +
Namegit_namespaces
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
number
boolean
string
string
boolean
string
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamIdhost, providerLists git namespaces for a supported provider. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider is not provided, it will try to obtain it from the user that authenticated the request.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Team identifier or slug to perform the request on behalf of.
stringThe custom Git host if using a custom Git provider, like GitHub Enterprise Server
string
+ +## `SELECT` examples + + + + +Lists git namespaces for a supported provider. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider is not provided, it will try to obtain it from the user that authenticated the request. + +```sql +SELECT +id, +name, +installationId, +isAccessRestricted, +ownerType, +provider, +requireReauth, +slug +FROM vercel.integrations.git_namespaces +WHERE teamId = '{{ teamId }}' -- required +AND host = '{{ host }}' +AND provider = '{{ provider }}' +; +``` + + diff --git a/website/docs/services/integrations/index.md b/website/docs/services/integrations/index.md new file mode 100644 index 0000000..a174865 --- /dev/null +++ b/website/docs/services/integrations/index.md @@ -0,0 +1,34 @@ +--- +title: integrations +hide_title: false +hide_table_of_contents: false +keywords: + - integrations + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +integrations service documentation. + +:::info[Service Summary] + +total resources: __3__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/integrations/search_repo/index.md b/website/docs/services/integrations/search_repo/index.md new file mode 100644 index 0000000..a8ad129 --- /dev/null +++ b/website/docs/services/integrations/search_repo/index.md @@ -0,0 +1,163 @@ +--- +title: search_repo +hide_title: false +hide_table_of_contents: false +keywords: + - search_repo + - integrations + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a search_repo resource. + +## Overview + + + + +
Namesearch_repo
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
array
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamIdquery, namespaceId, provider, installationId, hostLists git repositories linked to a namespace `id` for a supported provider. A specific namespace `id` can be obtained via the `git-namespaces` endpoint. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider or namespace is not provided, it will try to obtain it from the user that authenticated the request.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Team identifier or slug to perform the request on behalf of.
stringThe custom Git host if using a custom Git provider, like GitHub Enterprise Server
string
string
string
+ +## `SELECT` examples + + + + +Lists git repositories linked to a namespace `id` for a supported provider. A specific namespace `id` can be obtained via the `git-namespaces` endpoint. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider or namespace is not provided, it will try to obtain it from the user that authenticated the request. + +```sql +SELECT +gitAccount, +repos +FROM vercel.integrations.search_repo +WHERE teamId = '{{ teamId }}' -- required +AND query = '{{ query }}' +AND namespaceId = '{{ namespaceId }}' +AND provider = '{{ provider }}' +AND installationId = '{{ installationId }}' +AND host = '{{ host }}' +; +``` + + diff --git a/website/docs/services/log_drains/index.md b/website/docs/services/log_drains/index.md new file mode 100644 index 0000000..6c23ce2 --- /dev/null +++ b/website/docs/services/log_drains/index.md @@ -0,0 +1,33 @@ +--- +title: log_drains +hide_title: false +hide_table_of_contents: false +keywords: + - log_drains + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +log_drains service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/log_drains/integrations/index.md b/website/docs/services/log_drains/integrations/index.md new file mode 100644 index 0000000..a70aa7a --- /dev/null +++ b/website/docs/services/log_drains/integrations/index.md @@ -0,0 +1,370 @@ +--- +title: integrations +hide_title: false +hide_table_of_contents: false +keywords: + - integrations + - log_drains + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an integrations resource. + +## Overview + + + + +
Nameintegrations
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A list of log drains + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique identifier of the log drain. Always prefixed with `ld_` (example: ld_nBuA7zCID8g4QZ8g)
stringThe name of the log drain (example: My first log drain)
stringThe branch regexp of log drain (example: feature/*)
stringThe oauth2 client application id that created this log drain (example: oac_xRhY4LAB7yLhUADD69EvV7ct)
stringThe client configuration this log drain was created with (example: icfg_cuwj0AdCdH3BwWT4LPijCC7t)
numberA timestamp that tells you when the log drain was created
stringWhether the log drain was created by an integration or by a user (example: integration)
stringThe delivery log format (example: json)
stringThe environment of log drain (example: production)
objectThe headers to send with the request (example: {"Authorization": "Bearer 123"})
stringThe identifier of the team or user whose events will trigger the log drain (example: kr1PsOIzqEL5Xg6M4VZcZosf)
string (example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb)
arrayThe identifier of the projects this log drain is associated with (example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb)
arrayThe sources from which logs are currently being delivered to this log drain.
stringThe URL to call when logs are generated (example: https://example.com/log-drain)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamIdRetrieves a list of all Integration log drains that are defined for the authenticated user or team. When using an OAuth2 token, the list is limited to log drains created by the authenticated integration.
teamId, data__name, data__urlCreates an Integration log drain. This endpoint must be called with an OAuth2 client (integration), since log drains are tied to integrations. If it is called with a different token type it will produce a 400 error.
id, teamIdupdateFlowDeletes the Integration log drain with the provided `id`. When using an OAuth2 Token, the log drain can be deleted only if the integration owns it.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringID of the log drain to be deleted
stringThe Team identifier or slug to perform the request on behalf of.
booleanIf this API is being called as part of an update flow, this should be set to true
+ +## `SELECT` examples + + + + +Retrieves a list of all Integration log drains that are defined for the authenticated user or team. When using an OAuth2 token, the list is limited to log drains created by the authenticated integration. + +```sql +SELECT +id, +name, +branch, +clientId, +configurationId, +createdAt, +createdFrom, +deliveryFormat, +environment, +headers, +ownerId, +projectId, +projectIds, +sources, +url +FROM vercel.log_drains.integrations +WHERE teamId = '{{ teamId }}' -- required +; +``` + + + + +## `INSERT` examples + + + + +Creates an Integration log drain. This endpoint must be called with an OAuth2 client (integration), since log drains are tied to integrations. If it is called with a different token type it will produce a 400 error. + +```sql +INSERT INTO vercel.log_drains.integrations ( +data__name, +data__projectIds, +data__secret, +data__deliveryFormat, +data__url, +data__sources, +data__headers, +data__environment, +data__branch, +data__previousLogDrainId, +teamId +) +SELECT +'{{ name }}' /* required */, +'{{ projectIds }}', +'{{ secret }}', +'{{ deliveryFormat }}', +'{{ url }}' /* required */, +'{{ sources }}', +'{{ headers }}', +'{{ environment }}', +'{{ branch }}', +'{{ previousLogDrainId }}', +'{{ teamId }}' +RETURNING +id, +name, +branch, +clientId, +configurationId, +createdAt, +createdFrom, +deliveryFormat, +environment, +headers, +ownerId, +projectId, +projectIds, +sources, +url +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: integrations + props: + - name: teamId + value: string + description: Required parameter for the integrations resource. + - name: name + value: string + description: | + The name of the log drain + - name: projectIds + value: array + - name: secret + value: string + description: | + A secret to sign log drain notification headers so a consumer can verify their authenticity + - name: deliveryFormat + value: string + description: | + The delivery log format + valid_values: ['json', 'ndjson', 'syslog'] + - name: url + value: string + description: | + The url where you will receive logs. The protocol must be `https://` or `http://` when type is `json` and `ndjson`, and `syslog+tls:` or `syslog:` when the type is `syslog`. + - name: sources + value: array + - name: headers + value: object + description: | + Headers to be sent together with the request + - name: environment + value: string + description: | + The environment of log drain + valid_values: ['preview', 'production'] + - name: branch + value: string + description: | + The branch regexp of log drain + - name: previousLogDrainId + value: string + description: | + The id of the log drain that was previously created and deleted +``` + + + + +## `DELETE` examples + + + + +Deletes the Integration log drain with the provided `id`. When using an OAuth2 Token, the log drain can be deleted only if the integration owns it. + +```sql +DELETE FROM vercel.log_drains.integrations +WHERE id = '{{ id }}' --required +AND teamId = '{{ teamId }}' --required +AND updateFlow = '{{ updateFlow }}' +; +``` + + diff --git a/website/docs/services/log_drains/log_drains/index.md b/website/docs/services/log_drains/log_drains/index.md new file mode 100644 index 0000000..bd701bf --- /dev/null +++ b/website/docs/services/log_drains/log_drains/index.md @@ -0,0 +1,559 @@ +--- +title: log_drains +hide_title: false +hide_table_of_contents: false +keywords: + - log_drains + - log_drains + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a log_drains resource. + +## Overview + + + + +
Namelog_drains
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
string
string
string
string
number
string
string
number
string
string
string
number
object
string
array
string
array
string
string
string
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
string
string
string
string
number
string
string
number
string
string
string
number
object
string
array
string
array
string
string
string
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, teamIdRetrieves a Configurable Log Drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be accessed.
teamIdprojectIdRetrieves a list of Configurable Log Drains. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be accessed.
teamId, data__deliveryFormat, data__url, data__sourcesCreates a configurable log drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed)
id, teamIdDeletes a Configurable Log Drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be deleted.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringID of the log drain to be deleted.
stringThe Team identifier or slug to perform the request on behalf of.
string
+ +## `SELECT` examples + + + + +Retrieves a Configurable Log Drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be accessed. + +```sql +SELECT +id, +name, +branch, +clientId, +configurationId, +createdAt, +createdFrom, +deliveryFormat, +disabledAt, +disabledBy, +disabledReason, +environment, +firstErrorTimestamp, +headers, +ownerId, +projectIds, +secret, +sources, +status, +teamId, +url +FROM vercel.log_drains.log_drains +WHERE id = '{{ id }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + +Retrieves a list of Configurable Log Drains. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be accessed. + +```sql +SELECT +id, +name, +branch, +clientId, +configurationId, +createdAt, +createdFrom, +deliveryFormat, +disabledAt, +disabledBy, +disabledReason, +environment, +firstErrorTimestamp, +headers, +ownerId, +projectIds, +secret, +sources, +status, +teamId, +url +FROM vercel.log_drains.log_drains +WHERE teamId = '{{ teamId }}' -- required +AND projectId = '{{ projectId }}' +; +``` + + + + +## `INSERT` examples + + + + +Creates a configurable log drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed) + +```sql +INSERT INTO vercel.log_drains.log_drains ( +data__deliveryFormat, +data__url, +data__headers, +data__projectIds, +data__sources, +data__environment, +data__branch, +data__secret, +teamId +) +SELECT +'{{ deliveryFormat }}' /* required */, +'{{ url }}' /* required */, +'{{ headers }}', +'{{ projectIds }}', +'{{ sources }}' /* required */, +'{{ environment }}', +'{{ branch }}', +'{{ secret }}', +'{{ teamId }}' +RETURNING +id, +name, +branch, +clientId, +configurationId, +createdAt, +createdFrom, +deliveryFormat, +disabledAt, +disabledBy, +disabledReason, +environment, +firstErrorTimestamp, +headers, +ownerId, +projectIds, +secret, +sources, +status, +teamId, +url +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: log_drains + props: + - name: teamId + value: string + description: Required parameter for the log_drains resource. + - name: deliveryFormat + value: string + description: | + The delivery log format + valid_values: ['json', 'ndjson'] + - name: url + value: string + description: | + The log drain url + - name: headers + value: object + description: | + Headers to be sent together with the request + - name: projectIds + value: array + - name: sources + value: array + - name: environment + value: string + description: | + The environment of log drain + valid_values: ['preview', 'production'] + - name: branch + value: string + description: | + The branch regexp of log drain + - name: secret + value: string + description: | + Custom secret of log drain +``` + + + + +## `DELETE` examples + + + + +Deletes a Configurable Log Drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be deleted. + +```sql +DELETE FROM vercel.log_drains.log_drains +WHERE id = '{{ id }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + diff --git a/website/docs/services/project_members/index.md b/website/docs/services/project_members/index.md new file mode 100644 index 0000000..96bcd4c --- /dev/null +++ b/website/docs/services/project_members/index.md @@ -0,0 +1,33 @@ +--- +title: project_members +hide_title: false +hide_table_of_contents: false +keywords: + - project_members + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +project_members service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/project_members/projects_members/index.md b/website/docs/services/project_members/projects_members/index.md new file mode 100644 index 0000000..65432eb --- /dev/null +++ b/website/docs/services/project_members/projects_members/index.md @@ -0,0 +1,248 @@ +--- +title: projects_members +hide_title: false +hide_table_of_contents: false +keywords: + - projects_members + - project_members + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a projects_members resource. + +## Overview + + + + +
Nameprojects_members
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Paginated list of members for the project. + + + + + + + + + + + +
NameDatatypeDescription
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
idOrName, teamIdlimit, since, until, searchLists all members of a project.
idOrName, uid, teamIdRemove a member from a specific project
idOrName, teamIdlimit, since, until, searchLists all members of a project.
idOrName, teamId, uidAdds a new member to the project.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe ID or name of the Project.
stringThe Team identifier or slug to perform the request on behalf of.
stringThe user ID of the member.
integerLimit how many project members should be returned
integerTimestamp in milliseconds to only include members added since then.
integerTimestamp in milliseconds to only include members added until then.
+ +## `SELECT` examples + + + + +Lists all members of a project. + +```sql +SELECT +* +FROM vercel.project_members.projects_members +WHERE idOrName = '{{ idOrName }}' -- required +AND teamId = '{{ teamId }}' -- required +AND limit = '{{ limit }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +AND search = '{{ search }}' +; +``` + + + + +## `DELETE` examples + + + + +Remove a member from a specific project + +```sql +DELETE FROM vercel.project_members.projects_members +WHERE idOrName = '{{ idOrName }}' --required +AND uid = '{{ uid }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Lists all members of a project. + +```sql +EXEC vercel.project_members.projects_members._get_project_members +@idOrName='{{ idOrName }}' --required, +@teamId='{{ teamId }}' --required, +@limit='{{ limit }}', +@since='{{ since }}', +@until='{{ until }}', +@search='{{ search }}' +; +``` + + + +Adds a new member to the project. + +```sql +EXEC vercel.project_members.projects_members.add_project_member +@idOrName='{{ idOrName }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"uid": "{{ uid }}", +"username": "{{ username }}", +"email": "{{ email }}", +"role": "{{ role }}" +}' +; +``` + + diff --git a/website/docs/services/projects/domains/index.md b/website/docs/services/projects/domains/index.md new file mode 100644 index 0000000..2db62d7 --- /dev/null +++ b/website/docs/services/projects/domains/index.md @@ -0,0 +1,484 @@ +--- +title: domains +hide_title: false +hide_table_of_contents: false +keywords: + - domains + - projects + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a domains resource. + +## Overview + + + + +
Namedomains
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
string
number
string
string
string
number
number
arrayA list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
boolean`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.
+
+ + +Successful response retrieving a list of domains + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
string
number
string
string
string
number
number
arrayA list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
boolean`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
idOrName, domain, teamIdGet project domain by project id/name and domain name.
idOrName, teamIdproduction, gitBranch, redirects, redirect, verified, limit, since, until, orderRetrieve the domains associated with a given project by passing either the project `id` or `name` in the URL.
idOrName, domain, teamIdRemove a domain from a project by passing the domain name and by specifying the project by either passing the project `id` or `name` in the URL.
idOrName, teamIdproduction, gitBranch, redirects, redirect, verified, limit, since, until, orderRetrieve the domains associated with a given project by passing either the project `id` or `name` in the URL.
idOrName, domain, teamIdUpdate a project domain's configuration, including the name, git branch and redirect of the domain.
idOrName, teamId, nameAdd a domain to the project by passing its domain name and by specifying the project by either passing the project `id` or `name` in the URL. If the domain is not yet verified to be used on this project, the request will return `verified = false`, and the domain will need to be verified according to the `verification` challenge via `POST /projects/:idOrName/domains/:domain/verify`. If the domain already exists on the project, the request will fail with a `400` status code.
idOrName, domain, teamIdAttempts to verify a project domain with `verified = false` by checking the correctness of the project domain's `verification` challenge.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe domain name you want to verify
stringThe unique project identifier or the project name
stringThe Team identifier or slug to perform the request on behalf of.
stringFilters domains based on specific branch.
numberMaximum number of domains to list from a request (max 100).
Domains sort order by createdAt
Filters only production domains when set to `true`.
stringFilters domains based on their redirect target.
Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default).
numberGet domains created after this JavaScript timestamp.
numberGet domains created before this JavaScript timestamp.
Filters domains based on their verification status.
+ +## `SELECT` examples + + + + +Get project domain by project id/name and domain name. + +```sql +SELECT +name, +apexName, +createdAt, +gitBranch, +projectId, +redirect, +redirectStatusCode, +updatedAt, +verification, +verified +FROM vercel.projects.domains +WHERE idOrName = '{{ idOrName }}' -- required +AND domain = '{{ domain }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + +Retrieve the domains associated with a given project by passing either the project `id` or `name` in the URL. + +```sql +SELECT +name, +apexName, +createdAt, +gitBranch, +projectId, +redirect, +redirectStatusCode, +updatedAt, +verification, +verified +FROM vercel.projects.domains +WHERE idOrName = '{{ idOrName }}' -- required +AND teamId = '{{ teamId }}' -- required +AND production = '{{ production }}' +AND gitBranch = '{{ gitBranch }}' +AND redirects = '{{ redirects }}' +AND redirect = '{{ redirect }}' +AND verified = '{{ verified }}' +AND limit = '{{ limit }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +AND order = '{{ order }}' +; +``` + + + + +## `DELETE` examples + + + + +Remove a domain from a project by passing the domain name and by specifying the project by either passing the project `id` or `name` in the URL. + +```sql +DELETE FROM vercel.projects.domains +WHERE idOrName = '{{ idOrName }}' --required +AND domain = '{{ domain }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Retrieve the domains associated with a given project by passing either the project `id` or `name` in the URL. + +```sql +EXEC vercel.projects.domains._get_project_domains +@idOrName='{{ idOrName }}' --required, +@teamId='{{ teamId }}' --required, +@production='{{ production }}', +@gitBranch='{{ gitBranch }}', +@redirects='{{ redirects }}', +@redirect='{{ redirect }}', +@verified='{{ verified }}', +@limit='{{ limit }}', +@since='{{ since }}', +@until='{{ until }}', +@order='{{ order }}' +; +``` + + + +Update a project domain's configuration, including the name, git branch and redirect of the domain. + +```sql +EXEC vercel.projects.domains.update_project_domain +@idOrName='{{ idOrName }}' --required, +@domain='{{ domain }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"gitBranch": "{{ gitBranch }}", +"redirect": "{{ redirect }}", +"redirectStatusCode": {{ redirectStatusCode }} +}' +; +``` + + + +Add a domain to the project by passing its domain name and by specifying the project by either passing the project `id` or `name` in the URL. If the domain is not yet verified to be used on this project, the request will return `verified = false`, and the domain will need to be verified according to the `verification` challenge via `POST /projects/:idOrName/domains/:domain/verify`. If the domain already exists on the project, the request will fail with a `400` status code. + +```sql +EXEC vercel.projects.domains.add_project_domain +@idOrName='{{ idOrName }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"name": "{{ name }}", +"gitBranch": "{{ gitBranch }}", +"redirect": "{{ redirect }}", +"redirectStatusCode": {{ redirectStatusCode }} +}' +; +``` + + + +Attempts to verify a project domain with `verified = false` by checking the correctness of the project domain's `verification` challenge. + +```sql +EXEC vercel.projects.domains.verify_project_domain +@idOrName='{{ idOrName }}' --required, +@domain='{{ domain }}' --required, +@teamId='{{ teamId }}' --required +; +``` + + diff --git a/website/docs/services/projects/index.md b/website/docs/services/projects/index.md new file mode 100644 index 0000000..694dfe6 --- /dev/null +++ b/website/docs/services/projects/index.md @@ -0,0 +1,34 @@ +--- +title: projects +hide_title: false +hide_table_of_contents: false +keywords: + - projects + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +projects service documentation. + +:::info[Service Summary] + +total resources: __3__ + +::: + +## Resources +
+ + +
\ No newline at end of file diff --git a/website/docs/services/projects/projects/index.md b/website/docs/services/projects/projects/index.md new file mode 100644 index 0000000..6a6fb7e --- /dev/null +++ b/website/docs/services/projects/projects/index.md @@ -0,0 +1,1150 @@ +--- +title: projects +hide_title: false +hide_table_of_contents: false +keywords: + - projects + - projects + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a projects resource. + +## Overview + + + + +
Nameprojects
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The project information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
string
string
object
boolean
string
boolean
string
string
boolean
string
number
object
boolean
object
string
boolean
boolean
array
string
object
boolean
boolean
boolean
boolean
string
object
object
array
boolean
string
string
object
boolean
object
boolean
object
boolean
string
string
boolean
boolean
object
object
number
number
string
string
number
+
+ + +The paginated list of projects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
string
string
object
boolean
string
boolean
string
string
boolean
string
number
object
boolean
object
string
boolean
boolean
array
string
object
boolean
boolean
boolean
boolean
string
object
object
array
boolean
string
string
object
boolean
object
boolean
object
boolean
string
string
boolean
boolean
object
object
number
number
string
string
number
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
idOrName, teamIdGet the information for a specific project by passing either the project `id` or `name` in the URL.
teamIdfrom, gitForkProtection, limit, search, repo, repoId, repoUrl, excludeRepos, edgeConfigId, edgeConfigTokenIdAllows to retrieve the list of projects of the authenticated user or team. The list will be paginated and the provided query parameters allow filtering the returned projects.
teamId, data__nameAllows to create a new project with the provided configuration. It only requires the project `name` but more configuration can be provided to override the defaults.
idOrName, teamIdDelete a specific project by passing either the project `id` or `name` in the URL.
projectId, teamIdUpdate the data cache feature on a project.
teamIdfrom, gitForkProtection, limit, search, repo, repoId, repoUrl, excludeRepos, edgeConfigId, edgeConfigTokenIdAllows to retrieve the list of projects of the authenticated user or team. The list will be paginated and the provided query parameters allow filtering the returned projects.
idOrName, teamIdUpdate the fields of a project using either its `name` or `id`.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique project identifier or the project name
stringThe unique project identifier
stringThe Team identifier or slug to perform the request on behalf of.
stringFilter results by connected Edge Config ID
stringFilter results by connected Edge Config Token ID
stringFilter results by excluding those projects that belong to a repo
stringQuery only projects updated after the given timestamp
stringSpecifies whether PRs from Git forks should require a team member's authorization before it can be deployed
stringLimit the number of projects returned
stringFilter results by repo. Also used for project count
stringFilter results by Repository ID.
stringFilter results by Repository URL.
+ +## `SELECT` examples + + + + +Get the information for a specific project by passing either the project `id` or `name` in the URL. + +```sql +SELECT +id, +name, +accountId, +analytics, +autoAssignCustomDomains, +autoAssignCustomDomainsUpdatedBy, +autoExposeSystemEnvs, +buildCommand, +commandForIgnoringBuildStep, +connectBuildsEnabled, +connectConfigurationId, +createdAt, +crons, +customerSupportCodeVisibility, +dataCache, +devCommand, +directoryListing, +enablePreviewFeedback, +env, +framework, +gitComments, +gitForkProtection, +gitLFS, +hasActiveBranches, +hasFloatingAliases, +installCommand, +lastAliasRequest, +lastRollbackTarget, +latestDeployments, +link, +live, +nodeVersion, +outputDirectory, +passwordProtection, +paused, +permissions, +productionDeploymentsFastLane, +protectionBypass, +publicSource, +rootDirectory, +serverlessFunctionRegion, +skipGitConnectDuringLink, +sourceFilesOutsideRootDirectory, +ssoProtection, +targets, +transferCompletedAt, +transferStartedAt, +transferToAccountId, +transferredFromAccountId, +trustedIps, +updatedAt +FROM vercel.projects.projects +WHERE idOrName = '{{ idOrName }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + +Allows to retrieve the list of projects of the authenticated user or team. The list will be paginated and the provided query parameters allow filtering the returned projects. + +```sql +SELECT +id, +name, +accountId, +analytics, +autoAssignCustomDomains, +autoAssignCustomDomainsUpdatedBy, +autoExposeSystemEnvs, +buildCommand, +commandForIgnoringBuildStep, +connectBuildsEnabled, +connectConfigurationId, +createdAt, +crons, +customerSupportCodeVisibility, +dataCache, +devCommand, +directoryListing, +enablePreviewFeedback, +env, +framework, +gitComments, +gitForkProtection, +gitLFS, +hasActiveBranches, +hasFloatingAliases, +installCommand, +lastAliasRequest, +lastRollbackTarget, +latestDeployments, +link, +live, +nodeVersion, +outputDirectory, +passwordProtection, +paused, +permissions, +productionDeploymentsFastLane, +protectionBypass, +publicSource, +rootDirectory, +serverlessFunctionRegion, +skipGitConnectDuringLink, +sourceFilesOutsideRootDirectory, +ssoProtection, +targets, +transferCompletedAt, +transferStartedAt, +transferToAccountId, +transferredFromAccountId, +trustedIps, +updatedAt +FROM vercel.projects.projects +WHERE teamId = '{{ teamId }}' -- required +AND from = '{{ from }}' +AND gitForkProtection = '{{ gitForkProtection }}' +AND limit = '{{ limit }}' +AND search = '{{ search }}' +AND repo = '{{ repo }}' +AND repoId = '{{ repoId }}' +AND repoUrl = '{{ repoUrl }}' +AND excludeRepos = '{{ excludeRepos }}' +AND edgeConfigId = '{{ edgeConfigId }}' +AND edgeConfigTokenId = '{{ edgeConfigTokenId }}' +; +``` + + + + +## `INSERT` examples + + + + +Allows to create a new project with the provided configuration. It only requires the project `name` but more configuration can be provided to override the defaults. + +```sql +INSERT INTO vercel.projects.projects ( +data__buildCommand, +data__commandForIgnoringBuildStep, +data__devCommand, +data__environmentVariables, +data__framework, +data__gitRepository, +data__installCommand, +data__name, +data__skipGitConnectDuringLink, +data__outputDirectory, +data__publicSource, +data__rootDirectory, +data__serverlessFunctionRegion, +teamId +) +SELECT +'{{ buildCommand }}', +'{{ commandForIgnoringBuildStep }}', +'{{ devCommand }}', +'{{ environmentVariables }}', +'{{ framework }}', +'{{ gitRepository }}', +'{{ installCommand }}', +'{{ name }}' /* required */, +{{ skipGitConnectDuringLink }}, +'{{ outputDirectory }}', +{{ publicSource }}, +'{{ rootDirectory }}', +'{{ serverlessFunctionRegion }}', +'{{ teamId }}' +RETURNING +id, +name, +accountId, +analytics, +autoAssignCustomDomains, +autoAssignCustomDomainsUpdatedBy, +autoExposeSystemEnvs, +buildCommand, +commandForIgnoringBuildStep, +connectBuildsEnabled, +connectConfigurationId, +createdAt, +crons, +customerSupportCodeVisibility, +dataCache, +devCommand, +directoryListing, +enablePreviewFeedback, +env, +framework, +gitComments, +gitForkProtection, +gitLFS, +hasActiveBranches, +hasFloatingAliases, +installCommand, +lastAliasRequest, +lastRollbackTarget, +latestDeployments, +link, +live, +nodeVersion, +outputDirectory, +passwordProtection, +paused, +permissions, +productionDeploymentsFastLane, +protectionBypass, +publicSource, +rootDirectory, +serverlessFunctionRegion, +skipGitConnectDuringLink, +sourceFilesOutsideRootDirectory, +ssoProtection, +targets, +transferCompletedAt, +transferStartedAt, +transferToAccountId, +transferredFromAccountId, +trustedIps, +updatedAt +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: projects + props: + - name: teamId + value: string + description: Required parameter for the projects resource. + - name: buildCommand + value: string + description: | + The build command for this project. When `null` is used this value will be automatically detected + - name: commandForIgnoringBuildStep + value: string + - name: devCommand + value: string + description: | + The dev command for this project. When `null` is used this value will be automatically detected + - name: environmentVariables + value: array + description: | + Collection of ENV Variables the Project will use + - name: framework + value: string + description: | + The framework that is being used for this project. When `null` is used no framework is selected + valid_values: ['', 'blitzjs', 'nextjs', 'gatsby', 'remix', 'astro', 'hexo', 'eleventy', 'docusaurus-2', 'docusaurus', 'preact', 'solidstart', 'dojo', 'ember', 'vue', 'scully', 'ionic-angular', 'angular', 'polymer', 'svelte', 'sveltekit', 'sveltekit-1', 'ionic-react', 'create-react-app', 'gridsome', 'umijs', 'sapper', 'saber', 'stencil', 'nuxtjs', 'redwoodjs', 'hugo', 'jekyll', 'brunch', 'middleman', 'zola', 'hydrogen', 'vite', 'vitepress', 'vuepress', 'parcel', 'sanity', 'storybook'] + - name: gitRepository + value: object + description: | + The Git Repository that will be connected to the project. When this is defined, any pushes to the specified connected Git Repository will be automatically deployed + - name: installCommand + value: string + description: | + The install command for this project. When `null` is used this value will be automatically detected + - name: name + value: string + description: | + The desired name for the project + - name: skipGitConnectDuringLink + value: boolean + description: | + Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. + - name: outputDirectory + value: string + description: | + The output directory of the project. When `null` is used this value will be automatically detected + - name: publicSource + value: boolean + description: | + Specifies whether the source code and logs of the deployments for this project should be public or not + - name: rootDirectory + value: string + description: | + The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root + - name: serverlessFunctionRegion + value: string + description: | + The region to deploy Serverless Functions in this project +``` + + + + +## `DELETE` examples + + + + +Delete a specific project by passing either the project `id` or `name` in the URL. + +```sql +DELETE FROM vercel.projects.projects +WHERE idOrName = '{{ idOrName }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Update the data cache feature on a project. + +```sql +EXEC vercel.projects.projects.update_project_data_cache +@projectId='{{ projectId }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"disabled": {{ disabled }} +}' +; +``` + + + +Allows to retrieve the list of projects of the authenticated user or team. The list will be paginated and the provided query parameters allow filtering the returned projects. + +```sql +EXEC vercel.projects.projects._get_projects +@teamId='{{ teamId }}' --required, +@from='{{ from }}', +@gitForkProtection='{{ gitForkProtection }}', +@limit='{{ limit }}', +@search='{{ search }}', +@repo='{{ repo }}', +@repoId='{{ repoId }}', +@repoUrl='{{ repoUrl }}', +@excludeRepos='{{ excludeRepos }}', +@edgeConfigId='{{ edgeConfigId }}', +@edgeConfigTokenId='{{ edgeConfigTokenId }}' +; +``` + + + +Update the fields of a project using either its `name` or `id`. + +```sql +EXEC vercel.projects.projects.update_project +@idOrName='{{ idOrName }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"autoExposeSystemEnvs": {{ autoExposeSystemEnvs }}, +"autoAssignCustomDomains": {{ autoAssignCustomDomains }}, +"autoAssignCustomDomainsUpdatedBy": "{{ autoAssignCustomDomainsUpdatedBy }}", +"buildCommand": "{{ buildCommand }}", +"commandForIgnoringBuildStep": "{{ commandForIgnoringBuildStep }}", +"customerSupportCodeVisibility": {{ customerSupportCodeVisibility }}, +"devCommand": "{{ devCommand }}", +"directoryListing": {{ directoryListing }}, +"framework": "{{ framework }}", +"gitForkProtection": {{ gitForkProtection }}, +"gitLFS": {{ gitLFS }}, +"installCommand": "{{ installCommand }}", +"name": "{{ name }}", +"nodeVersion": "{{ nodeVersion }}", +"outputDirectory": "{{ outputDirectory }}", +"passwordProtection": "{{ passwordProtection }}", +"publicSource": {{ publicSource }}, +"rootDirectory": "{{ rootDirectory }}", +"serverlessFunctionRegion": "{{ serverlessFunctionRegion }}", +"skipGitConnectDuringLink": {{ skipGitConnectDuringLink }}, +"sourceFilesOutsideRootDirectory": {{ sourceFilesOutsideRootDirectory }}, +"ssoProtection": "{{ ssoProtection }}", +"trustedIps": "{{ trustedIps }}", +"enablePreviewFeedback": {{ enablePreviewFeedback }} +}' +; +``` + + diff --git a/website/docs/services/secrets/index.md b/website/docs/services/secrets/index.md new file mode 100644 index 0000000..7f7d5e9 --- /dev/null +++ b/website/docs/services/secrets/index.md @@ -0,0 +1,33 @@ +--- +title: secrets +hide_title: false +hide_table_of_contents: false +keywords: + - secrets + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +secrets service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/secrets/secrets/index.md b/website/docs/services/secrets/secrets/index.md new file mode 100644 index 0000000..ca2d21e --- /dev/null +++ b/website/docs/services/secrets/secrets/index.md @@ -0,0 +1,460 @@ +--- +title: secrets +hide_title: false +hide_table_of_contents: false +keywords: + - secrets + - secrets + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a secrets resource. + +## Overview + + + + +
Namesecrets
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successful response retrieving a secret. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the secret. (example: my-api-key)
string (date-time)The date when the secret was created. (example: 2021-02-10T13:11:49.180Z)
numberTimestamp for when the secret was created.
booleanIndicates whether the secret value can be decrypted after it has been created.
stringThe unique identifier of the project which the secret belongs to. (example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE)
stringThe unique identifier of the team the secret was created for. (example: team_LLHUOMOoDlqOp8wPE4kFo9pE)
stringThe unique identifier of the secret. (example: sec_XCG7t7AIHuO2SBA8667zNUiM)
stringThe unique identifier of the user who created the secret. (example: 2qDDuGFTWXBLDNnqZfWPDp1A)
stringThe value of the secret.
+
+ + +Successful response retrieving a list of secrets. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the secret. (example: my-api-key)
string (date-time)The date when the secret was created. (example: 2021-02-10T13:11:49.180Z)
numberTimestamp for when the secret was created.
booleanIndicates whether the secret value can be decrypted after it has been created.
stringThe unique identifier of the project which the secret belongs to. (example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE)
stringThe unique identifier of the team the secret was created for. (example: team_LLHUOMOoDlqOp8wPE4kFo9pE)
stringThe unique identifier of the secret. (example: sec_XCG7t7AIHuO2SBA8667zNUiM)
stringThe unique identifier of the user who created the secret. (example: 2qDDuGFTWXBLDNnqZfWPDp1A)
stringThe value of the secret.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
idOrName, teamIddecryptRetrieves the information for a specific secret by passing either the secret id or name in the URL.
teamIdid, projectIdRetrieves the active Vercel secrets for the authenticated user or team. By default it returns 20 secrets. The rest can be retrieved using the pagination options. The body will contain an entry for each secret.
name, teamId, data__name, data__valueAllows to create a new secret.
idOrName, teamIdThis deletes the user or team’s secret defined in the URL.
teamIdid, projectIdRetrieves the active Vercel secrets for the authenticated user or team. By default it returns 20 secrets. The rest can be retrieved using the pagination options. The body will contain an entry for each secret.
name, teamId, nameEnables to edit the name of a secret. The name has to be unique to the user or team’s secrets.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name or the unique identifier to which the secret belongs to.
stringThe name of the secret.
stringThe Team identifier or slug to perform the request on behalf of.
stringWhether to try to decrypt the value of the secret. Only works if `decryptable` has been set to `true` when the secret was created.
stringFilter out secrets based on comma separated secret ids.
stringFilter out secrets that belong to a project.
+ +## `SELECT` examples + + + + +Retrieves the information for a specific secret by passing either the secret id or name in the URL. + +```sql +SELECT +name, +created, +createdAt, +decryptable, +projectId, +teamId, +uid, +userId, +value +FROM vercel.secrets.secrets +WHERE idOrName = '{{ idOrName }}' -- required +AND teamId = '{{ teamId }}' -- required +AND decrypt = '{{ decrypt }}' +; +``` + + + +Retrieves the active Vercel secrets for the authenticated user or team. By default it returns 20 secrets. The rest can be retrieved using the pagination options. The body will contain an entry for each secret. + +```sql +SELECT +name, +created, +createdAt, +decryptable, +projectId, +teamId, +uid, +userId, +value +FROM vercel.secrets.secrets +WHERE teamId = '{{ teamId }}' -- required +AND id = '{{ id }}' +AND projectId = '{{ projectId }}' +; +``` + + + + +## `INSERT` examples + + + + +Allows to create a new secret. + +```sql +INSERT INTO vercel.secrets.secrets ( +data__name, +data__value, +data__decryptable, +data__projectId, +name, +teamId +) +SELECT +'{{ name }}' /* required */, +'{{ value }}' /* required */, +{{ decryptable }}, +'{{ projectId }}', +'{{ name }}', +'{{ teamId }}' +RETURNING +name, +created, +createdAt, +decryptable, +projectId, +teamId, +uid, +userId, +value +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: secrets + props: + - name: name + value: string + description: Required parameter for the secrets resource. + - name: teamId + value: string + description: Required parameter for the secrets resource. + - name: name + value: string + description: | + The name of the secret (max 100 characters). + - name: value + value: string + description: | + The value of the new secret. + - name: decryptable + value: boolean + description: | + Whether the secret value can be decrypted after it has been created. + - name: projectId + value: string + description: | + Associate a secret to a project. +``` + + + + +## `DELETE` examples + + + + +This deletes the user or team’s secret defined in the URL. + +```sql +DELETE FROM vercel.secrets.secrets +WHERE idOrName = '{{ idOrName }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + + + +## Lifecycle Methods + + + + +Retrieves the active Vercel secrets for the authenticated user or team. By default it returns 20 secrets. The rest can be retrieved using the pagination options. The body will contain an entry for each secret. + +```sql +EXEC vercel.secrets.secrets._get_secrets +@teamId='{{ teamId }}' --required, +@id='{{ id }}', +@projectId='{{ projectId }}' +; +``` + + + +Enables to edit the name of a secret. The name has to be unique to the user or team’s secrets. + +```sql +EXEC vercel.secrets.secrets.rename_secret +@name='{{ name }}' --required, +@teamId='{{ teamId }}' --required +@@json= +'{ +"name": "{{ name }}" +}' +; +``` + + diff --git a/website/docs/services/teams/index.md b/website/docs/services/teams/index.md new file mode 100644 index 0000000..75e40d3 --- /dev/null +++ b/website/docs/services/teams/index.md @@ -0,0 +1,35 @@ +--- +title: teams +hide_title: false +hide_table_of_contents: false +keywords: + - teams + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +teams service documentation. + +:::info[Service Summary] + +total resources: __4__ + +::: + +## Resources +
+ + +
\ No newline at end of file diff --git a/website/docs/services/teams/invites/index.md b/website/docs/services/teams/invites/index.md new file mode 100644 index 0000000..efa4979 --- /dev/null +++ b/website/docs/services/teams/invites/index.md @@ -0,0 +1,107 @@ +--- +title: invites +hide_title: false +hide_table_of_contents: false +keywords: + - invites + - teams + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an invites resource. + +## Overview + + + + +
Nameinvites
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamId, inviteIdDelete an active Team invite code.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Team invite code ID.
stringThe Team identifier or slug to perform the request on behalf of.
+ +## `DELETE` examples + + + + +Delete an active Team invite code. + +```sql +DELETE FROM vercel.teams.invites +WHERE teamId = '{{ teamId }}' --required +AND inviteId = '{{ inviteId }}' --required +; +``` + + diff --git a/website/docs/services/teams/members/index.md b/website/docs/services/teams/members/index.md new file mode 100644 index 0000000..1b2e240 --- /dev/null +++ b/website/docs/services/teams/members/index.md @@ -0,0 +1,373 @@ +--- +title: members +hide_title: false +hide_table_of_contents: false +keywords: + - members + - teams + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a members resource. + +## Overview + + + + +
Namemembers
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of this user. (example: Jane Doe)
numberTimestamp in milliseconds for when this team member was accepted by an owner.
stringID of the file for the Avatar of this member. (example: 123a6c5209bc3778245d011443644c8d27dc2c50)
objectInformation about the Bitbucket account of this user.
booleanBoolean that indicates if this member was confirmed by an owner.
numberTimestamp in milliseconds when this member was added.
stringThe email of this member. (example: jane.doe@example.com)
objectInformation about the GitHub account for this user.
objectInformation about the GitLab account of this user.
objectMap with information about the members origin if they joined by requesting access.
arrayArray of project memberships
stringRole of this user in the team. (example: OWNER)
stringThe ID of this user. (example: zTuNVUXEAvvnNN3IaqinkyMw)
stringThe unique username of this user. (example: jane-doe)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamIdlimit, since, until, search, role, excludeProject, eligibleMembersForProjectIdGet a paginated list of team members for the provided team.
teamId, uidnewDefaultTeamIdRemove a Team Member from the Team, or dismiss a user that requested access, or leave a team.
teamIdlimit, since, until, search, role, excludeProject, eligibleMembersForProjectIdGet a paginated list of team members for the provided team.
teamIdInvite a user to join the team specified in the URL. The authenticated user needs to be an `OWNER` in order to successfully invoke this endpoint. The user can be specified with an email or an ID. If both email and ID are provided, ID will take priority.
teamId, uidUpdate the membership of a Team Member on the Team specified by `teamId`, such as changing the _role_ of the member, or confirming a request to join the Team for an unconfirmed member. The authenticated user must be an `OWNER` of the Team.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringID of the Team.
stringThe ID of the member.
stringInclude team members who are eligible to be members of the specified project.
stringExclude members who belong to the specified project.
numberLimit how many teams should be returned
stringThe ID of the team to set as the new default team for the Northstar user.
stringOnly return members with the specified team role.
numberTimestamp in milliseconds to only include members added since then.
numberTimestamp in milliseconds to only include members added until then.
+ +## `SELECT` examples + + + + +Get a paginated list of team members for the provided team. + +```sql +SELECT +name, +accessRequestedAt, +avatar, +bitbucket, +confirmed, +createdAt, +email, +github, +gitlab, +joinedFrom, +projects, +role, +uid, +username +FROM vercel.teams.members +WHERE teamId = '{{ teamId }}' -- required +AND limit = '{{ limit }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +AND search = '{{ search }}' +AND role = '{{ role }}' +AND excludeProject = '{{ excludeProject }}' +AND eligibleMembersForProjectId = '{{ eligibleMembersForProjectId }}' +; +``` + + + + +## `DELETE` examples + + + + +Remove a Team Member from the Team, or dismiss a user that requested access, or leave a team. + +```sql +DELETE FROM vercel.teams.members +WHERE teamId = '{{ teamId }}' --required +AND uid = '{{ uid }}' --required +AND newDefaultTeamId = '{{ newDefaultTeamId }}' +; +``` + + + + +## Lifecycle Methods + + + + +Get a paginated list of team members for the provided team. + +```sql +EXEC vercel.teams.members._get_team_members +@teamId='{{ teamId }}' --required, +@limit='{{ limit }}', +@since='{{ since }}', +@until='{{ until }}', +@search='{{ search }}', +@role='{{ role }}', +@excludeProject='{{ excludeProject }}', +@eligibleMembersForProjectId='{{ eligibleMembersForProjectId }}' +; +``` + + + +Invite a user to join the team specified in the URL. The authenticated user needs to be an `OWNER` in order to successfully invoke this endpoint. The user can be specified with an email or an ID. If both email and ID are provided, ID will take priority. + +```sql +EXEC vercel.teams.members.invite_user_to_team +@teamId='{{ teamId }}' --required +@@json= +'{ +"uid": "{{ uid }}", +"email": "{{ email }}", +"role": "{{ role }}", +"projects": "{{ projects }}" +}' +; +``` + + + +Update the membership of a Team Member on the Team specified by `teamId`, such as changing the _role_ of the member, or confirming a request to join the Team for an unconfirmed member. The authenticated user must be an `OWNER` of the Team. + +```sql +EXEC vercel.teams.members.update_team_member +@teamId='{{ teamId }}' --required, +@uid='{{ uid }}' --required +@@json= +'{ +"confirmed": {{ confirmed }}, +"role": "{{ role }}", +"projects": "{{ projects }}", +"joinedFrom": "{{ joinedFrom }}" +}' +; +``` + + diff --git a/website/docs/services/teams/request/index.md b/website/docs/services/teams/request/index.md new file mode 100644 index 0000000..c981010 --- /dev/null +++ b/website/docs/services/teams/request/index.md @@ -0,0 +1,209 @@ +--- +title: request +hide_title: false +hide_table_of_contents: false +keywords: + - request + - teams + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a request resource. + +## Overview + + + + +
Namerequest
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successfully + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
numberTimestamp in milliseconds when the user requested access to the team.
objectMap of the connected Bitbucket account.
booleanCurrent status of the membership. Will be `true` if confirmed, if pending it'll be `false`.
objectMap of the connected GitHub account.
objectMap of the connected GitLab account.
objectA map that describes the origin from where the user joined.
stringThe name of the team. (example: My Team)
stringThe slug of the team. (example: my-team)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamId, userIdCheck the status of a join request. It'll respond with a 404 if the request has been declined. If no `userId` path segment was provided, this endpoint will instead return the status of the authenticated user.
teamId, joinedFromRequest access to a team as a member. An owner has to approve the request. Only 10 users can request access to a team at the same time.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringID of the Team.
stringUser ID.
+ +## `SELECT` examples + + + + +Check the status of a join request. It'll respond with a 404 if the request has been declined. If no `userId` path segment was provided, this endpoint will instead return the status of the authenticated user. + +```sql +SELECT +accessRequestedAt, +bitbucket, +confirmed, +github, +gitlab, +joinedFrom, +teamName, +teamSlug +FROM vercel.teams.request +WHERE teamId = '{{ teamId }}' -- required +AND userId = '{{ userId }}' -- required +; +``` + + + + +## Lifecycle Methods + + + + +Request access to a team as a member. An owner has to approve the request. Only 10 users can request access to a team at the same time. + +```sql +EXEC vercel.teams.request.request_access_to_team +@teamId='{{ teamId }}' --required +@@json= +'{ +"joinedFrom": "{{ joinedFrom }}" +}' +; +``` + + diff --git a/website/docs/services/teams/teams/index.md b/website/docs/services/teams/teams/index.md new file mode 100644 index 0000000..4a4d454 --- /dev/null +++ b/website/docs/services/teams/teams/index.md @@ -0,0 +1,382 @@ +--- +title: teams +hide_title: false +hide_table_of_contents: false +keywords: + - teams + - teams + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a teams resource. + +## Overview + + + + +
Nameteams
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The requested team + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Team's unique identifier. (example: team_nllPyCtREAqxxdyFKbbMDlxd)
stringName associated with the Team account, or `null` if none has been provided. (example: My Team)
stringThe ID of the file used as avatar for this Team. (example: 6eb07268bcfadd309905ffb1579354084c24655c)
stringThe Team's slug, which is unique across the Vercel platform. (example: my-team)
+
+ + +A paginated list of teams. + + + + + + + + + + + +
NameDatatypeDescription
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamIdslugGet information for the Team specified by the `teamId` parameter.
limit, since, untilGet a paginated list of all the Teams the authenticated User is a member of.
data__slugCreate a new Team under your account. You need to send a POST request with the desired Team slug, and optionally the Team name.
teamIdnewDefaultTeamIdDelete a team under your account. You need to send a `DELETE` request with the desired team `id`. An optional array of reasons for deletion may also be sent.
teamIdJoin a team with a provided invite code or team ID.
teamIdUpdate the information of a Team specified by the `teamId` parameter. The request body should contain the information that will be updated on the Team.
limit, since, untilGet a paginated list of all the Teams the authenticated User is a member of.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Team identifier or slug to perform the request on behalf of.
numberMaximum number of Teams which may be returned.
stringId of the team to be set as the new default team
numberTimestamp (in milliseconds) to only include Teams created since then.
string
numberTimestamp (in milliseconds) to only include Teams created until then.
+ +## `SELECT` examples + + + + +Get information for the Team specified by the `teamId` parameter. + +```sql +SELECT +id, +name, +avatar, +slug +FROM vercel.teams.teams +WHERE teamId = '{{ teamId }}' -- required +AND slug = '{{ slug }}' +; +``` + + + +Get a paginated list of all the Teams the authenticated User is a member of. + +```sql +SELECT +* +FROM vercel.teams.teams +WHERE limit = '{{ limit }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +; +``` + + + + +## `INSERT` examples + + + + +Create a new Team under your account. You need to send a POST request with the desired Team slug, and optionally the Team name. + +```sql +INSERT INTO vercel.teams.teams ( +data__slug, +data__name +) +SELECT +'{{ slug }}' /* required */, +'{{ name }}' +RETURNING +id, +billing, +slug +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: teams + props: + - name: slug + value: string + description: | + The desired slug for the Team + - name: name + value: string + description: | + The desired name for the Team. It will be generated from the provided slug if nothing is provided +``` + + + + +## `DELETE` examples + + + + +Delete a team under your account. You need to send a `DELETE` request with the desired team `id`. An optional array of reasons for deletion may also be sent. + +```sql +DELETE FROM vercel.teams.teams +WHERE teamId = '{{ teamId }}' --required +AND newDefaultTeamId = '{{ newDefaultTeamId }}' +; +``` + + + + +## Lifecycle Methods + + + + +Join a team with a provided invite code or team ID. + +```sql +EXEC vercel.teams.teams.join_team +@teamId='{{ teamId }}' --required +@@json= +'{ +"inviteCode": "{{ inviteCode }}", +"teamId": "{{ teamId }}" +}' +; +``` + + + +Update the information of a Team specified by the `teamId` parameter. The request body should contain the information that will be updated on the Team. + +```sql +EXEC vercel.teams.teams.patch_team +@teamId='{{ teamId }}' --required +@@json= +'{ +"avatar": "{{ avatar }}", +"description": "{{ description }}", +"emailDomain": "{{ emailDomain }}", +"name": "{{ name }}", +"previewDeploymentSuffix": "{{ previewDeploymentSuffix }}", +"regenerateInviteCode": {{ regenerateInviteCode }}, +"saml": "{{ saml }}", +"slug": "{{ slug }}", +"enablePreviewFeedback": "{{ enablePreviewFeedback }}", +"sensitiveEnvironmentVariablePolicy": "{{ sensitiveEnvironmentVariablePolicy }}", +"migrateExistingEnvVariablesToSensitive": {{ migrateExistingEnvVariablesToSensitive }}, +"remoteCaching": "{{ remoteCaching }}", +"hideIpAddresses": {{ hideIpAddresses }} +}' +; +``` + + + +Get a paginated list of all the Teams the authenticated User is a member of. + +```sql +EXEC vercel.teams.teams._get_teams +@limit='{{ limit }}', +@since='{{ since }}', +@until='{{ until }}' +; +``` + + diff --git a/website/docs/services/user/events/index.md b/website/docs/services/user/events/index.md new file mode 100644 index 0000000..93f1980 --- /dev/null +++ b/website/docs/services/user/events/index.md @@ -0,0 +1,222 @@ +--- +title: events +hide_title: false +hide_table_of_contents: false +keywords: + - events + - user + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an events resource. + +## Overview + + + + +
Nameevents
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successful response. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe unique identifier of the Event. (example: uev_bfmMjiMnXfnPbT97dGdpJbCN)
numberTimestamp (in milliseconds) of when the event was generated.
arrayA list of "entities" within the event `text`. Useful for enhancing the displayed text with additional styling and links.
stringThe human-readable text of the Event. (example: You logged in via GitHub)
objectMetadata for the User who generated the event.
stringThe unique identifier of the User who generated the event. (example: zTuNVUXEAvvnNN3IaqinkyMw)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
teamIdlimit, since, until, types, userIdRetrieves a list of "events" generated by the User on Vercel. Events are generated when the User performs a particular action, such as logging in, creating a deployment, and joining a Team (just to name a few). When the `teamId` parameter is supplied, then the events that are returned will be in relation to the Team that was specified.
teamIdlimit, since, until, types, userIdRetrieves a list of "events" generated by the User on Vercel. Events are generated when the User performs a particular action, such as logging in, creating a deployment, and joining a Team (just to name a few). When the `teamId` parameter is supplied, then the events that are returned will be in relation to the Team that was specified.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Team identifier or slug to perform the request on behalf of.
numberMaximum number of items which may be returned.
stringTimestamp to only include items created since then.
stringComma-delimited list of event \"types\" to filter the results by.
stringTimestamp to only include items created until then.
stringWhen retrieving events for a Team, the `userId` parameter may be specified to filter events generated by a specific member of the Team.
+ +## `SELECT` examples + + + + +Retrieves a list of "events" generated by the User on Vercel. Events are generated when the User performs a particular action, such as logging in, creating a deployment, and joining a Team (just to name a few). When the `teamId` parameter is supplied, then the events that are returned will be in relation to the Team that was specified. + +```sql +SELECT +id, +createdAt, +entities, +text, +user, +userId +FROM vercel.user.events +WHERE teamId = '{{ teamId }}' -- required +AND limit = '{{ limit }}' +AND since = '{{ since }}' +AND until = '{{ until }}' +AND types = '{{ types }}' +AND userId = '{{ userId }}' +; +``` + + + + +## Lifecycle Methods + + + + +Retrieves a list of "events" generated by the User on Vercel. Events are generated when the User performs a particular action, such as logging in, creating a deployment, and joining a Team (just to name a few). When the `teamId` parameter is supplied, then the events that are returned will be in relation to the Team that was specified. + +```sql +EXEC vercel.user.events._list_user_events +@teamId='{{ teamId }}' --required, +@limit='{{ limit }}', +@since='{{ since }}', +@until='{{ until }}', +@types='{{ types }}', +@userId='{{ userId }}' +; +``` + + diff --git a/website/docs/services/user/index.md b/website/docs/services/user/index.md new file mode 100644 index 0000000..e7d385e --- /dev/null +++ b/website/docs/services/user/index.md @@ -0,0 +1,33 @@ +--- +title: user +hide_title: false +hide_table_of_contents: false +keywords: + - user + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +user service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources +
+
+events +
+
+user +
+
\ No newline at end of file diff --git a/website/docs/services/user/user/index.md b/website/docs/services/user/user/index.md new file mode 100644 index 0000000..bf36e56 --- /dev/null +++ b/website/docs/services/user/user/index.md @@ -0,0 +1,173 @@ +--- +title: user +hide_title: false +hide_table_of_contents: false +keywords: + - user + - user + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a user resource. + +## Overview + + + + +
Nameuser
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Successful response. + + + + + + + + + + + +
NameDatatypeDescription
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
Retrieves information related to the currently authenticated User.
Initiates the deletion process for the currently authenticated User, by sending a deletion confirmation email. The email contains a link that the user needs to visit in order to proceed with the deletion process.
Retrieves information related to the currently authenticated User.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + +
NameDatatypeDescription
+ +## `SELECT` examples + + + + +Retrieves information related to the currently authenticated User. + +```sql +SELECT +* +FROM vercel.user.user +; +``` + + + + +## `DELETE` examples + + + + +Initiates the deletion process for the currently authenticated User, by sending a deletion confirmation email. The email contains a link that the user needs to visit in order to proceed with the deletion process. + +```sql +DELETE FROM vercel.user.user +; +``` + + + + +## Lifecycle Methods + + + + +Retrieves information related to the currently authenticated User. + +```sql +EXEC vercel.user.user._get_auth_user + +; +``` + + diff --git a/website/docs/services/webhooks/index.md b/website/docs/services/webhooks/index.md new file mode 100644 index 0000000..4f30ede --- /dev/null +++ b/website/docs/services/webhooks/index.md @@ -0,0 +1,33 @@ +--- +title: webhooks +hide_title: false +hide_table_of_contents: false +keywords: + - webhooks + - vercel + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +webhooks service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/webhooks/webhooks/index.md b/website/docs/services/webhooks/webhooks/index.md new file mode 100644 index 0000000..beeaee2 --- /dev/null +++ b/website/docs/services/webhooks/webhooks/index.md @@ -0,0 +1,303 @@ +--- +title: webhooks +hide_title: false +hide_table_of_contents: false +keywords: + - webhooks + - webhooks + - vercel + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage vercel resources using SQL +custom_edit_url: null +image: /img/stackql-vercel-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a webhooks resource. + +## Overview + + + + +
Namewebhooks
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe webhook id (example: account_hook_GflD6EYyo7F4ViYS)
numberA number containing the date when the webhook was created in in milliseconds
arrayThe webhooks events (example: deployment.created)
stringThe unique ID of the team the webhook belongs to (example: ZspSRT4ljIEEmMHgoDwKWDei)
arrayThe ID of the projects the webhook is associated with
numberA number containing the date when the webhook was updated in in milliseconds
stringA string with the URL of the webhook (example: https://my-webhook.com)
+
+ + + + + + + + + + + + +
NameDatatypeDescription
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, teamIdGet a webhook
teamIdprojectIdGet a list of webhooks
teamId, data__url, data__eventsCreates a webhook
id, teamIdDeletes a webhook
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string
stringThe Team identifier or slug to perform the request on behalf of.
string
+ +## `SELECT` examples + + + + +Get a webhook + +```sql +SELECT +id, +createdAt, +events, +ownerId, +projectIds, +updatedAt, +url +FROM vercel.webhooks.webhooks +WHERE id = '{{ id }}' -- required +AND teamId = '{{ teamId }}' -- required +; +``` + + + +Get a list of webhooks + +```sql +SELECT +* +FROM vercel.webhooks.webhooks +WHERE teamId = '{{ teamId }}' -- required +AND projectId = '{{ projectId }}' +; +``` + + + + +## `INSERT` examples + + + + +Creates a webhook + +```sql +INSERT INTO vercel.webhooks.webhooks ( +data__url, +data__events, +data__projectIds, +teamId +) +SELECT +'{{ url }}' /* required */, +'{{ events }}' /* required */, +'{{ projectIds }}', +'{{ teamId }}' +RETURNING +id, +createdAt, +events, +ownerId, +projectIds, +secret, +updatedAt, +url +; +``` + + + +```yaml +# Description fields are for documentation purposes +- name: webhooks + props: + - name: teamId + value: string + description: Required parameter for the webhooks resource. + - name: url + value: string + - name: events + value: array + - name: projectIds + value: array +``` + + + + +## `DELETE` examples + + + + +Deletes a webhook + +```sql +DELETE FROM vercel.webhooks.webhooks +WHERE id = '{{ id }}' --required +AND teamId = '{{ teamId }}' --required +; +``` + + diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 0257689..e6e3e3c 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -7,8 +7,8 @@ import {themes as prismThemes} from 'prism-react-renderer'; // Provider configuration - change these for different providers -const providerName = "yourprovidername"; -const providerTitle = "Your Provider Title"; +const providerName = "vercel"; +const providerTitle = "Vercel"; const providerDropDownListItems = [ { diff --git a/website/static/img/stackql-digitalocean-provider-featured-image.png b/website/static/img/stackql-digitalocean-provider-featured-image.png deleted file mode 100644 index b141ec71bded7a195b6bdf0d5dc5ba03747b69a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23974 zcmeGEcUM#2_XP@L!-gOqL^>!aD7^?sS5Z)DDkSvYq=W#G8j6ZSlq$UiL==>SUIQU0 zASE;bLkmSpi1ZR5gb=s~zt3~u#Qpuj2q)tV_S$Rjz1G}wt;xG5hPoHd@t$L1V!H6? z;r(Y!Oef2jn2y8FFazHR#V)P^A17V!8r)@KD(z4{^?m_(KI{F^9LB`N+IsYJEJcEq z5BQSj#RIb!#!#0R0rtMmOn0524$fB|LF`?fpE=t*1^IM3t1~fKi#)o2*CfzpW#Vl1 zXHbyLfvfbDim%UO&U>3DpS){+N#yw@6IpKiEAu)^JXkqNQOSH!uZxOpEW-2R5s8S8 z2ka?7=Xfu3y!$ABIIr4^Nr_ zFY0G|gk9c13Oxv+79b?TcsGh|?}vQx^ns81N)CM5H#PpdovEpGCJA&#!Wt+Y7zZ@oQcU!GIVDVQCW((jR{#h3Fa{& zDZL-ff#-plExwpGc8Ri=j)*!8LqwEDuN)rxCHgPrIf_Ivhpk7mw})0QkDJ$^Ll!}1 zJ%zYC9#LXC*x*8hR#+rn@_97Vc_yZpi^X-KGb>yVtjuujEnQ&k=ZZ*{%2jFNCxr6a zC7*SQiSrMuvjA{l`a0BP#lDf*ci$?FqpZ}r<|zxC=b-fjq_c({N^3z#2@)H*%{2Z^ zx(GI1E6l1A9utAOtAbrGLA2xuZlr1mD}~&rI@r1V^RS7CDTkFWxYgA6`VW5b+p9ka zA6Y8G1U6PDL~JT8sls-I|GhSCK)%l(;O3_9;H~(#7ZEGSv+*ueIEV3hUf#~)-)Qq7 zur(yq-EI77O_ZOs#ci+Hz*(5cWO+a(oBpGhrp%%tD%SZEt zH7Spiuq`kC4H7fH5}=EnJHgI%_;DFM*ywq;q13Y}Zg(z>J$!3x^}%=OnIjKye>>U~ zYGNrmhR<;>WZ_`1cwi)!n{V#^vqNXT(o}bOZ+ZaOROkIV{uGV#l()~blZ6JBPyFwN z+2upT2z7bDtf`^z@i^zkoUX1F=9a@mb!L~{v45dS_JxoQ`v#u!SUXS=M!oM@Wz!1M z6H$^i;y$1KZ@KdRv+22OxQYX}LZDCH{cLt=l>;o(rpTC{DV@It2j-!^tuc|pXP@^E z1j$}fv8U^4+3+@_FgG=*OJSTFiEOv%WlaB;^!bFMmIs*cl1;T^4`;RAw!FbJ%yphP(6mm%!3{(wx_XJsa7}Sc|1aE0y7$Q>fVu$@1SzR zpSAwfl8#kupi>reDz@k2EVLYIr{V(VIfQd|I}q(?zKya&_VU%11}z+8m|Y8}IOFO} zcgHYt_a51p)vz=S-LRa@<-J$zOD{3wEoZa=wlMv3oCPK4yoilujagxXmdvWSC9`Qf zB5+oTT_*T(tFcndNZE2}iRCI{cPCz0njY4w+r+*>$ily6ldwExKLpXW%t&~v{m)1V z+!g~t-gk8CZpWIMU-xqz#jk}?*B)R48xX}gzi5w8UVETc*CtM%v0-6pY>idIv4Iei z%n6S2zRT>cjh{xN&Wimzl)ZxKRQKPRf7~nE?_;TKB0J*+@QoYe-g>QCHvB&0TzEsU zGfC-j!2N9MX8)vXy3GG}>N3bxCwo73fZG`Xb8Xd$j|n^!r0~tm$+iR>z*~K6#nn90 zAj#V2*WTByKv}LkZT?%P^rTXT?94)!o}-EO>8v6YsX>>2`}OJr#g6yr2+hkr8*KRA zuk%a|5;GkuB8DO6m24c3|Lyy1&kZX36dmLi^Jx<}JJw3?cX#hrW+jJS(hLr2O+2*Z z#neyVi0fQop9-~BVT*_C*dHg9G2H-ml%se{<{ATiOXt#WENzrMR|`A2E-p~#*jj62 z%p0WdtJrD}4{XgngbhZX{c`*$keFM((5K124=VMFy}kBvBeP6htR}qkw6HYp+cFEC zJ7pI3a{#fT?6qUx{Pmv?!ILoiLGBuO{d9L-aZMTr%C&kVu`n5_){u6gr=Go3v(T;O z&@n@h7rB6qfV>(g8w4C zg8vUrQdb#R5UVlsi6J~>jT+6hTRTkJbT;FtPouzwOf!}A&;0Mzn&mE1SLTF2YBhSq zF&e?;HM(q6r(4RkvC5UwCVLO<8x}{m0G9FUzg5xks=Gb|*8--$b!{!?_VgD6_^ZGk zFJQ2u(N#p9XdmbQ|L<1JEN(i-dNqKk_xUl}t(SrA!<9f%OOt8&+AL09NVJmrPxQ^d zpv9xIrbgIIQ~G7G=`y??%F5w&wxPtK1>2(`kYry#ZNv52+(uWl{rmM_BltIU}W=sRk& zOH+qFQycp1E~&U_wW?Gmt+=}&9&R$KgwQPpuBl=## z#aWC~%fPX4-0vTFPFdLqC5?EQ#ckO4XvWAL8#;++oz|7vv&aq@B@~|qD||rC{#1jQ ztKzeMDj5)ltQvRI<6o$5-yip1wagsacUubKuUqo>*&JvD=CZWkRVv*#y!Ile5^@TR zN_+*@G~!y@N*;l=(@>+(rSe--ebFHk6O6xu78m$sEW<{ykvu#W$N*XZek!T7me;KK zvCMOgkWyruXm{ry+E3DcA3=`3_MdLrg^%FqgOU(TEzzr|n6$QAKJl)bs~$)rfiG}h z+~7B+dD*FleuI&6qTe&G2+@~^XG6(0ngeldMRSFnQEQEkl9L-ZVT*_}WnqpuwMB^E z?_gZ$;=n0$pM>e}kH|Kc3vIWyKfDDGc9uDHmJoaN>}1a#8F4?zC zjPK&LfhlyWI+O~`l4Qn9FrN*NOWIxi`$mGtu39Bz9fuIp5}wIya^K-Gd>Clj+7m8N z{zDaT?9HS)qnFE`o}ugSeEyy#n{e8EK{LS_H@RBDr)A<9aT*O2(cFzxLMX(YzUQ9y zgJ9p)x1cU2@13)@E>41U5EE-}LM`r!tDsG(ZJFzgJ;!`4Oe>u zZ!Uis|ZNr4^L`Tj4Y@eibBus<`&<1ucHqSg=QoNuV*092P##jX!P^}@!KL3iz zL!Tvo@Ya+s?ci&O_7Z0CTvuwel0Gxno(|JRGQg5Gdp zHji`|s4-ANjJTo@*Db4RS14782S?-2^OCwQichE>yB32vx@=}Wc6Rj{C{j@h9cSJs zHja1S0T);L+D8kt`}h+vP&bSGB+Bhr;X6I7j7~kO*G^m4HSnVneK2b^JFaSbTyTdX z+=5by=zOXmYqFwVbzinpCZF;y`BN=@Ok1Py#F~HDUGDl?iB&H{ z_8o_n5UzF+t!xSF>e?jZ_k zYcf=|9ZwFN_Ls1oDPTE+7d+0Dr8CWcFB&O}40955--xsHZ~0aT8MCT)=MfKSeDS*! zyVLH|saz7zIaTKcCfMgn3)B&4jh*~vO>%gZvU!i){*9<*!6=!M@N_qDUAOMTguZE( zoLb`k26By2g544G(F?M1`Kr{t*i+M-ZbANzH?#()S34(96O{3eS4>HK)swTn57C;5{j(cfa19S9R7f0tvGF-|v5jKkM*jGy>)IG4QG6fk_=dI(2;D=em8Wrs;B%#N)2^Z`L$hO^ zu_B29qvk!6-lSP~r92q;m-VxpT(Y(QHu?nlTNO{+Z*IG40UKxXdIc#e*6BFusV3Bw zUS~DY#0OJ+KPv-F#r~w3hRQS?9A@2D;-^_5LS1k^tq7l$ znz|yxHr<(pI8PKUgm=fIlF7p>lE-d)4(9V8 zc$UxqC83gRXz4$xtQl}$DDzm;MmLGwmiEA{N+o8!7m+o^U;gUdI1dciR3>2ks_PLi zpR%;$mET~{2L`TK97V12eSs}5sGCsB%|?-XQD)1WSB-z^Xog$~$#D|fQ4_Kn3(~A6 z^yBdnEGH`~AVp-dewBa?!DYM!g+9mc5|~0hBo<1qs56fRTg`7f*(JqOL&n+kB0tZ! zSd45cHiRqU&?lXO$!XNQ#TB9Z+?Lk^=TxMh`-+B@4q$ub@!D1)5R>AuGYGCI9lA4&;bMeaJg zhTza8T1{zMtMo5jWqEw&e<*)@L?Xe5(*%zH9EYa5k!~%X0VSSE)z` zd3Tk5TD!DVDLJjSAr!J2E!@|sW%CSIWgVLGI6j;n3jjnF;6CEfP}wu*kuRUuv?#9q z0Ry&o))gjGGoX;t_qT=Y+l%ICs!M-EbydmzAsxTSzep=3*D~TMG;Zdx9hivNlfG%V zVkh|#A0eAzs2Xr!YaCdn;Xf{a;5T}g@K%AxiBQ99i_>g6{MtCvreHG_G%@NF*Ro9< z;Cr8OH#IMvWzd?M+|-a8W9I7>P1Jf2vYI*1)g8e?nxvBk%qknEGU>wpqrmm_G6SrAZoMK}f zDM3-}49)6`MPt?I>7iMT_1L8ZuD&3{#xTg~fvUnG?*bqUuvEC8aoyC8QeLTrg;0`3 zW*K_a_YmdWVCj~pT~|;*_Kg+V58#Yv(KURLLwF4FqWqo9{^G!0JDr2jnyml-88~Uh zD$4;uJNWNTvLO}3qTX~@&t?$bP-vY2L;|l+`X5e)yOP^9h&95qazH7ns<-{kio%E5 zrMb&d|M^EEcot2nGg~rPDuPiPglEplDerC7rxSK-olk>|f28(RW}8;F<)uGKLgRv0 z%8sMqA~sbZfU39xoUyE2c{1K)^0NX5#Kc!JqhM??{lvTtWD9p$G%dGS3B?2ZYX^;! z)p6yX2K92Krrf2F^0`8b-FmFSr-qb1`#p)AhOl0@>URKLZvlDSP7?ahtLktAWUzZM zzNy}Mt_GUpYf|{SIQ7vKJ<1_$(O2Z;$0?s&Y1`GM8p~S4Rl-s}n`kQU^iMxz<%!Clp~1pZ#9l>W7* zy=3?1j1VOLTn+#G3{FpY&3bL!g~q&eKB0AK4qW9&fvs|YZZhAuW~Z-JeKF|4+aI@-OR z0tq|!$rJ&bFG>*vk)7bb<9>=BFmC&-Xa(8e>PUqnj^*_K5`vY%?Icc5SFBsE;VDbj zpXj{T#Y1`NvgZKS9H2oTJ3iFdj1?3(;*MDXnhN}7%nSo@-b|vS>qp%dI?L^Y1{09j z{i9h|4rW#G`~waw5nn@ zU?3hY4eVP>T|5z|}Ni~@mp)%oLlY;2-or&$pY8Sm{42;47wPBZ2ln5$3CEveGkH#W zlXbkfb5KWdaIt$SSzBYw%$X8Owi>F6MD?`8iIg$9M*cYY&S{Xv-ye&;QX08qnYuB1 zTTu!sMqsIFeJ~Hk75toomD5mSMRIH9Di0 z>#V1yZbg!E5F!DH5j!)2wQT&R^Bdr5)f8z64f9P0sWM)Hp&faTl-o^n8kAIND78{! zKFV;F+`_*8_%lH|geUD$MY}alT1stp#-&tXP1T87)Qn0l?SgO*+xZcDh^Qw!Kf33- zsK(WA6{_*W^=P|>jhNv8a4_0A@T&fMa_*%KLM}j)!lwfs0Hk}t1rD8;AWVP&7S2hz zy|pCdyW7f`Ts3}vT#3Y7nJ%nD7HJ&wkcvWoY&np{+pucIn`4W9B{kd`=|D2LpXzi3hc?(=vGv)jgs{;0MtuEGM4VeGKmx|1rvD)BcF%bu{6678{ z?fh3G{~hv}TUW1R39}MkRIO~2Wv{h@bbRTB5WLn4AlN-))m0C_C&n&FT}-NZZO?&` z@odh>047@bTFNxoSwGJZ~!3V1vOV|!^q7A7q;{l5z{d# zPNvclBS+8(INSX1zrBuqyVxQjEXddaip)>^hZbyIrR;lJ__)ql9rlA6&5%9eppqPC)#Poan-K7K}rzc&P6}%Xt$7lCU;ZchE*YH zx;vwNnV3O+m(q1KQV_t)zA=-$p7?NmB6`!dDv~t76f&@Ds)vPX*JSPc+%IV^;4~ma)#pJj&I}!m)K}F z)%)WWTGSvV9ubug$T7^k>xBJl%l**Sf-d37FmsG7{C7TU$upH5qcHu}DQTd_bqqjn z2`ncjgVtAl26;-?^mlUX!96MFDj#+=zld}^$F61XpI1}niIbjOxY=W)w&|m4I$GWV zk|EZ7bKc9iC-zdy|KRxUiiMSiceaH6sdFsa;ERj{l+ima^?4B=fS6KFlTTrx+4#+1 z?%_@?udZY~L?9%_}k7A@tjq*C+yj+!3)gXlY7)&fqTA`IirwgT9j zC?yC}n~NKbo0Q&@D{M>q6q-*!>-&~WCCQ7?t1_8N9O7y>fHFwQi}g}3=Y#wjf$)x1 zpWPWu6gTXH_Uogw*fY6I5~HbTna3)PAMUC&VY)ksMmF^UmBTqoUY3#7=I=%dY6Q6! zjxMC#7n&nT&8&(z>7LfI95#jWNtyu~IT)63*y za#cTP_6VC+Du>C>(W78Z{H8W)`)sbh_}AgZTcMon%2Ss&Pz_l~9t&73f*PhYqo?I5 zo&I)P2z(H>!sXM~*mFv%gXlLzVlUNbT1JCvBq?UeS~u~1s(F?MUxaFPtX_Dxo|ii4 zJf45t<5&kC&4Q3O!>o+gz9_2PH1L&b5ls!00Us+r zt?hRa8CBSxb8UJhynP9g3#5ec5U-vnrO3$wPDftB8lK>Dsaz%dFJ&YUN@It+z58Hs zL_ylx;H1y|`;pz30e+EZ;)xsv*9CVfx54i1)m+wj zE^)>Q>$JXqMDF$lZJ(ZTl2E2j9v6jza&2rE%@MzKMWUiO{)UWfMF z6U6=tHMKMOykkj7gbdRAd8Kl2lKPvnVtT5;yn#g~hr76nkqI9(1|}DQR`t}g)E@Ue zD9g@`JIzPB*sOk9rPQ1VOC)WFkt6hGKP<(0F%K_4l=g6YP*szw(2|;R#b|sD*)us_ zrO5L8V)GtpRum-)OaBvMB(KS;eMVuf%Uec>Na?)T+__bxAYypn;@0gVjn1yyXJ;SY z2USjeinq2nkPa!jH4n2vrC=l+;(LU9wLSw~3(v2ThxPND?k(xM;_?)9ALBZO<`*MJ z^Qwx5y{ibFJy(NyZn1cHEE!Kwk!sY=MLJ~oS-a+%Em5040~5li|1)CxqNawcwgc7x z*Q3bwm}GHQ3JFx68&Q(*2iY0mLZBZw?_=&w@)EBA@(+q;qGkbr~WZuZ}}klCE+U-uGo%W8QdYj`eI zX|#UGSa@q{?wnle<|^`)k2kQ6GVW^6RUp%oNuCROFx+X{Ky$qsRT1(p;3>?5!7xpsp)QLL%mOx1vpJUSCH`-+F^H3UH^@GXD}sH@;(HdJeNiOsiyH| zG^?Q|@`b#DxuPm4N=}AP=i*_#u{8JS=hf%{cPK57WvVUj94hwI&EPThuAED_orH{#Lm5^v!|4$AAR{XMU)!sA=T z^ZV$^>G*U-z8B1Cvpv`30T*6lG2b!w2UjYqXQ{6~EoSznWj5@aG!HXWvVe!M2rxQYpOpP}6QSjW}q zx#m`OJ2_WK==;WBqI^OH6luC4C-fQFIPwgnNB6gY&WH^sI4A4rN&d{Z)RRjH#Daz9J^$QzIXDMqXvfLb-1h8xcW$^s4=8sfXy zl~G&R6Xeil-usr2DzY>7&8=GGMBLcxPs{60erCPM)LIBXsue7TUF;k#v&txgnD^gW zp8f=1t#d|6w7AsO)B6iSeybF@(RpE^(RVfuyMIPH78}r4#-1O}sQl`l0F(EuD6Z?do^l6DrUjm9~sm9}HO3 zZO2MpntiQk8J|~|n??744t?vMTB2~Wx<@Uv+Z$OM$;lr;=Y;mHbb3uJK*TUVuU3uJ?2R*tDyGP;( zyqkpjJzQc?C1ptkGKPtZ$YL^cVB&k95-It!YeAm&qyf+T;u(ZKc zd$fhAcC|6CWGl*4L-ELxX+ozSS;@S0Iy%5J^r4OaHP|juHs0Q!g@|r`46uh3>T1C9 zD3Yw3wHc8pvg1{onYc3-bi~(=n_mUeoqI-7vGUdmz<${he$@g8Yz%DsW^vBSv{nbZ zVa`r%QUrPi8n{kKhTOkPzt_WhMYP{%y<&eyJ>6&d#7RM|B`sl zoH969b0Y3H%AeOS#aZT>+34Iz_4KsY4Fp`71hCx6vWwk|8G`@6H!SY`T3|Jmo{?FVo5 z;?oJCUJ!MUB3uW`SSCq6zY5aHtm8WwxD%0h*TvEans3rJioT^=x3>QEB{ZOBeAlW_#@Si&z;el_`l97(@ zV&SZqRrd^v*(^_u$J98dSb+PVTqgpnJO3S3e*# zLgO`1)ymm@a0@!J^zF62aAFHY^k-0-^@IgkZ7Q2Bf9yI5b`zBs$zw<^+?LUt7eNx{ z!DLL%6u9w^FRG_Rifp^utCODPP2&c+DX`*0nt4kct&kGQGvRdXrc@LCpC< z2$zlx+)1j}Iu4%tM2{{oaNfMYSY%Z*#||2+b}`6Qdt63`;krGkrdrWF5NsQ|@J2hU zv482sq8>SqT=L4W2Z6ZPc^d3)rsN z?Lw)AXDT6A!TvrC4N_qhypPTJjE_nEL9DrjcoK`;P4E8a8b3 z8W@~Xr1Jf-ib-Ly{eT9~i0j+ovK-g^Gp6uOpNw$VP0iv(p9}(=5#MDGKo$HA%`0w8 z(1$W*B|Xd}Xp1cQR%SetgivV^7B*SnQzV#K$|QjrY`Z=eF`8-olE7uLvN4B<$mQ8M zZ4_-5P~2c z1zP^1hc6z@mH__p5SIb~|f8W>% z^sSgX&(r&=Lm0h3H6yJFRpLBeJyb{sxlLALGB|QWxk0q$fT)CLl88X%Q>QS5rc?R1 zfTvt7p7mJEj?UihE>`&a;@gmxoVeregJ;WnrD6|?zOj6*s2!){bXr+SeR!Bs zOyH^ud*8^o)3WSiQJ>OZ_cCMDv?kOX){vPRE+VLxV`oY$BAz)0ri}4EOFDL+i2S^N zNekt6`4h`Y*u&Y+U947y36rQ79(uhXMYJJYGYytLb1#+ibv3R)P8CT0101X?`rTfW z1u0!exeR^);jk(HrM}2MF&!SIp*Yh45t-aaBS;MovbP5idTgbn&PQEtkwp{LS;x31@w@opLUhgE{7v1T^!PEo1k5>=ccIYj2Yq~(D>Q1~ z-9Ah}P}hbpdn<|A?+&IZw^sc?rr`b+>P^bZHbFozCt0B~st=W{f*5 z1-j!AJ{Y_^xx!M7C+tSDb4z}{C?Oti8XZ;U7r(N}}uylB}w& zHNXnfgys|=d{uW^mCYK^S3H|HQvU8w$b?tQ`ld^J2_Ckbq13JxZ1c@dU6_bWd@ zU~|SLel&OrlcrdV`G(mmas@iQYKP7Wfm0kK%~VSJuXR1Hd&_OJ?F7;#-gRb$^aM>t zUYFpeWE%t{Qm8UyCk`7ab)wh7o70gv#?KkoZ_76CLUQJo%pya~k)m@a?6QFolTZwU zdX~~i%$xmt{qt6CQEQ+>bthV2CuxtE0E#nTxy_<-Gr<3om>kg7x9Ti5q|$$Q!+AHS z{gVOBs`u2f$m@OPB|Bp~DZ}69*SL;O@LXCet3_QGiQ}TRhCwCC3uWQi0-R|x7orW(;!jvA_-vtYh z&c)?4OvrAd^NDOXVTxV+m(?YM8YuiV8Z5pzl1I9opS|1`WWM4!r8}P*War?|#O(?& zm`E!!NjprKR=TV2D?EnNsb;&1u(luj^EGOKy=>@R`7 z)*_QIhg9Sgx+C+Ap-%7lWC1&5jQ`yIIY@U(YJ9N|pYPyMh;`6@q>2+tOwDRa)6dQ0 z2l0k;T}DeUOIM}^a}lI;GcCR=H1z`X88v60FA4U?>HC=f_0b!Fp3?jP0&9FX+8Cd1 zqnXAw<)Mp`IWAicv?g@k=%{ip0lu$fGE8f?+UpYJYZl$sn570`oRfoMix6*xQ#1Xc6 zfi)C{D@+4Gfy2%bC@?8Jb~L1;@D$ehblq_OR|W^=fVE8d*^27nCTeyscXD94r-vOr ztQABz87peW&jxmahJlW!G=YlD2=pXH3Fb*~ z7#nW87a)Ybz)d+cR zyb3q$xeb`nOI44d(P6u^_}&n0)DKX}pU2jM)dwv?>FF9#xQz5r(x%_oVlCwC#5J4Bv3Iyw-reQ`AZj(R0lFlzTQ=xKlivODNQ$QW=gsm%3TtYc^Jo z{APUWRvYroQLCf^ml>ZtHe;dz~f+U$=k4ba()S#gR-)R;+p4K;Jpp|YNYZYKMAs1!6x)EtB?orsO54zjfJ0> zE%dc#c%JtH9m>b_UH?p(sEPk)p!uiWhhgOPj*}GY=l`{2{~$gqx7QHtJ|{LqOi^ag zH1vkWoL~R4+Fn|MscX7L_{KyA=~pO>g6rf~QHSah6;He2j}Z% zeACvrHlg5qk){*B8dmJeikq%h^X^P3F}=*VXeV`t0XrCfqI!kL_X0l73u>06T=FF9 z!28;XMcc`}KOdb2+g*S43$)D#b$y+)vgTpEpnV{9R6i$Q`a_z+w%}LzSg@3OShX#n zg^B>W!PArMBh6^`c)8Qd6=SGTm+P|tj204Ve7@JY4r8s)wmr}Eau1L_yj0?gGf0c=8_4oqRgW*atBCFJ3po6IbgCN8LO( zMheO^H%G#^>k(^d^n?7vxVn{+)u4&}rxT7F-3COJ_J4|_mw6qJ2$laW;nxo9FrU55 z-};SiwiF<*3EDaT({Cs|o}HdxfGpG;(%K&^V;{A8Sr&)wCjID-*0kbnOqiQQNW{gA zgw48ypUlCi&qyezv}HOspvDg&BAOMSDf!}%5UbW$Ety!wdiusv#o-R(f>8f*-}li& z_KjYd`yq;lRitf6apGY|?yXe`OBJrC!K3hGSa5gAQ4bke>^uL_I^}gsdIY~OcG@{kh2M;g@}s(5Yl%aj!GCu|A_4$i*~ocUFsAY^#2~-W zYFLM)8n)Z!65gTd@7DT?oT?K}7%pb#65!uxmdaw_m)CO;r7rf~GT!wfGi{D8m+e9q z=)n6W__tDfLL^$SCgBCIi_SJ#;CIjy`al85Tu%6cqTjq!wU)vJ= zd-TnahVdGYu$?~;EB@_w|HMPL?#{-*`)O-K@pWbVNwEhtmS0YH=Ky<~yS{~MZG#IZ-fW@mi7r{@iZX}q&3Q4hU`&# zgdZgrdYn_+ou6Q)N*nK7zucXwa%5;1=$vi9;whkcvcgq1nCFv#^`iu4{m7{9SAMq2 z=-|V!o`XxcofbqT?mwULv@XNc%X3bD8Gy#?mtMVnzscrd_-fXda-G(h71yRulb$4e zbgm?oz6fY|9A^<)!NHV>o07rSv;otf$;XDOOQHTcPJZ*>RX1SldNMa+e|#+7&$T{q zZB;w)CM8wo9>)3__TG$TsbD5QXi%Ja|0N&kEhPHtC|oJ0S^0%Z0_Ecmr_7I(7Q5dE z8jEk8sq!iUZaqFO72>wccS{*$L{byjpZP=*Q6y|5)n()lH(w#sQsgF7DOA^ug>?|C z=s?pGjsudp)(P{UemjIO{kA_rf_(Yez&LNOz5z6fozw6m9N-#;J`pfcq98_)o%18F zbxd8y9(PYdvATR2YEaS>Ah(**-d8Ox}OerE-&T6G^yuEYeMy z(~Keb?E3Gz!(xN{jcHDHF>ChnFoorHQ=r2EMnz22tgae~LCG6wIw9A!QHu3x4|dLU zZ68rU(6C2<%8tWluIYh#fw}X#SO8FmeT_H~u)JExa>G9~yj5f`vc1@L>_|L$N#)pH zv4J;i!>B9m6+IdDW_y2T6_K9@V5zp3H@1*04Bh0)aiJ#{JDJ>3OA%izjIn3b;iY|%-Y0#(LA>Ny-f zzA9_Tpc!T_vTa)XY?0v7KWW#KYM_a;#R&RtDLk<;4k1y>cyuJ|QCq3{5zH13Q4S9& zL~5T@2HMJt&@VrDNPOR0Ca^bz)!o{Q`fpOu=jR8u9EAl9uKU=XnStl`3ee+wbGX4M zHl9n%o39W{VNd<#2Zhcgsmgnb*B*8hi%e#<@W5fd69OA~Tv~zBB`jrv4COEVC=>j5 zhsM)v(Zt<41Rqo)cHi2V0jL{-R~HO@4{M{d7&_od?BByBu%rRJ!FY0~q7hDA&@Rh3 zX@+_H$3x4MH}uux`jx+4U&cM1Q;368mb{FX{|axHGAi(kFXQi9g=mj<&Z5_*>YTZHrLm7z!zi#Iv;V4*iVX4&gqcjzCSeT~(=5RtQc*G+f0{2} zj@7}NfMy(4BZAWW1&hUA7%5aYtZa^b>sTMf!*qw!H+}jj_PP#ikN2tv=k`ANKAB2y z%q2B(+8mqpEM&RD9Ic}#c2LBZ<==#U+$m@c&C)3>`g;hdo9&-5I}S34qE$g_AcKa0 zMjE_e;E>)0vGVv6tVZX#!(w&ta`F&4PgcSDEK%=|r?>Qj{Q)OTT9MWi*r6(=@P5zi zBnoIdN;Kes5bWHni#Sh(W@wPxoHq_gET*ZjM2=abn}^|0iS{{oe8#{xh11`U_AUAO zFu!Fqm5!IBc@9>Q|Ne1Jm0{Ed0J>q{8&fZ_YnHiBcpER4+pcAks6S@w!&(!=7r`fX zy6`B&>sH}ck`I+j#p3P5gaWaoodNVo{sd0rh8zoCl~!NBUOgIB@35M$yEqk_J7`TF zV=uHF6}a5lEW7&xn2VjD2B|hv$7rE?Vt2{_uGlCSrRZ`-mRsqPirc;`Ys_uv;pUpW zRcC@-eVN;3o4Tj1f?3H@Q5_d-)_B=Qwlb+P#l={-HEiCy zJ!N1z`m=Q*oaY4Kg&Ym9#!crd>$IQHf`hE`ENFD#TAE%y5ATSNk+KQ?(KM{&YxWs< zA4C|Cz6WT2jrDzKrgs(Gdzg|`A0X=A)Cf24b0H~_KL2f$GPPgMZIY1aFQK6TRj{O* z!P{T8HiL~wHE6#;Vj4w*bPyyXqqWAS^jLb1<;ka`42n z2a)6&Y=fsYt&}!UTu8LA>C}m({a(+%B6XaOlc@>0$<1^m=MXAqlW0?shiGKEnY&dgE1_b^eI?}nJ~zWGG`5&X zXk(>jGTXAvW@fv-7w5woHC7Uz5OR&!+MB()fV)t^6A^c5|{u~nyre4np) zyA21m500`uNU+IwbuZT*k&!s`j)9s;c*u)l`kkz|!vPQ;Qu;L(rR~i5 zeX_ZtY06^nFt#P>om~&$-FH62%0{qPMq27$YP-@DfA90nUGus5>i62CJpv{93h%4lVa(&-KZNArK^Fd`AtZ zAX|EQLFArw9PGa^Of0MBdeAZ+|CMd-*HkME)Z{5$yM*AzTd60&ka9kbqb08hLsc*! zG^LHHvwI}dtQ~D71rA5)1boZ3SZVv$<+L;kvxVgzj%MG*y5<74f9vKdTE~^t7xmZ; zXtynZL}q)9PKW8J5779{pSj@TTDf)13Kqgwu}k{t#cCm)rRj>LuLzqDdf8e%8F<-s zN6kic^;7;PeRKOkUX;D}5rie^;E=r+q>kEn{^8@AD<`T|avSx=>OChnYVTQ&n`w|j zVH1bz8e_w(yWl75UkX=i%ZdlQVL{#{tNMcVvu6L%Rq!QXU*&1B^=x55c z5EpLNoN0Hb7U-&%f0ql>VX{c3MiXpOJMJj;#Jq+(@60b(BY}akK-S@%v3+UkRVj+o zfqvb61PlY9JquD&U+Q!=qRnOhyvCjx_r&}Bs+1KhUm(* zv4H8Z=a`uGuR6|D&aJ67=e%^;zJwPj$CLeq>HO^mxj=y~Erar@Sf{Z-RT9V;TrCII z-!Z^Qrq@^PTo^4+*=31_XLb%WQ3E>OSNX{7-0xWimt}@n>3vKKySa26!nKh@3lBx1 zL=jWXz0xiHn|@z*vD>eM9BGTyE|)Z0Px47-{NZ}>9~>7vf^k-}c*$u9b@vPQCDRCL z8$5*b`fO^vS`JCQyC6V2vVi{DwuWGkrvR3(^JBfbj@Lc;8gH12f=%`W5Z~Bu`|yo@ zKZphcQf}BAA{}9R* z|DS$>< zjx-^CB=Qg4stErL<(=XR3CbzaiC9=lqs{gAG8ICX=3MuKGX0Q9a(~<|9Vrgq$h+AGO zxCM1eOWBkAi%hscO@r5FH8~qZTbF=11~yDBiHdADf!e<-4No##{OMM>K1%WsWB-ui z#pr7U`(y87{uV!AzPm%o<5rP6*A`=$zlbetFYKdYOYgo3fRDghmBxh zUnwk}*Mr}SVyqkA^R&_bZwctkN}AYSGrv(Y1PGHiTICP;a{4MX>FBLB;_ZDZqg)l0 zL-%d+h-VLO(*K~y#_UXEUVQ8b8qoxdJD;`P!6L!UdNw%OiJsSfBGv%~*5uQSHwog% z3f;LO?HN79GaOrF9;==@jO_{XE=yyZQ?yTm%E$$_(6KG9?HtvOTVp!5u1=l(_?kxFcuD ztV&Z7aM1ty;uIT}tgUKrTI+bh0IWY2xX z$A9P3B9QVc@v&ptmT2Q0D^*nRq*eFe8KoUK{cFOoxyOkOst$9a`V~y7rP3W~cg;AV zW~B1Z-Bvj_e}Qg&;{H*M&qC=ercZPtq@X2m&BvQe%A;&-L&8Z5I=$b*y$54LR`=rZ+`aFi)Mi>|UPfEk&++Uo^FmrOM&W!ZXYj z9zE67T3e);pk{ut@UY_9tNW?n^3H;D_!a^CW%`O&;9&&JC?RpM8UIF2lf6ifu>RuI z_SCy?SbJ**Il$lK{*wz&MtyW8v!ZXE-MNV)VCs#%${p8TSS2aV5-Li zyL^DgCO&fqgmk8-6hD_Gz|aiKp^*K_6yA&yXl-xhm(ecDB2h)Buod*5E1xQ#AD{*_qag{(@&5s?2kUs(&^j-VUM5N)Jnx>|#6O@>spd_LoE={qfNQ-ZQe=G>PmM%!zt3b0 zyWtd|dZ=*5lHfRdS-UJ|&lWnB{s}khzTP*xM^#gk?vVT4e%Jc82sXYKqbWV&f zXwZKg{7!fAn)1;2r&5n_GY5+R`v=}AG=|e6JnLwjP8kh=BsI+)(B$&OfUU}dqpmBpy}C6WsXpdt#$)C?t%IhdbbAmrvkH zDD4_22%a~7r{reGlCI;O8|*lT#(O~stwndv(PtL{;mqymW+I!IT8LU`ru@q->0#o% zt=w?!)*^Grgmmi36u(^_QoK7Q%VY~lUcs5m64%YAa5}=j`blsobDZCp5U};o725!~ zm@Gb5F7*6E&p^p&7(|&_hV0Y=?aJVX#-?L8k7w#i5N9Otmf;h18_gEy*4m&TD6}N6q7=}YlquwGT6xjX>pw)bm zN}jp1&3&nYkW1r#Qz}|3DXT(^-)8do{0y>?2PZ6081ySG4ZGSoTY3zLU$UX_SLYlv zv?}opEFg$3BuS?PG(1_+M9?+Q9T(CziUFRJriH4O1Ta$xqc3!Z0v_|cbE%hh4^{a9 z*=~F55Q>QrRlf!efPK?Zs*=KoQ06>qM-2n{8tSVmS*GMX zvA3EH9wP5gc8Zi)hoN3F!4TUuM+N&GuziFW!QF+~!3g)^R@^WL~S=%bmfj|bNt#ah|#`)};Y$|F(kch21I z`1xh-GP`Hh^-@<0kv4d-s&vottFL-`c?EB@s&oZU_v7}*Y%Isdk6`$b8b4NsW#Z?L jT==m~{QoX_K@)(l-Gr^O^>O*0l`hBSMu5f1jJPY z1Vmn>SAi=`2}l%hAhwrLlOZ60{tzLF+W^k5yT3B@A|SZciT@*{d7>N+T)gM4VBoFe zX6Nl^>1j(KW8-FJ%dF&LX>Y4-YiSeU(Qhk3Kp=mtBrl`uZ?-)jR%L1%!gEeT<`wT# zxtI_B%@?iyz!~!4*FB}#$Vi^t&NfzgF@{hBq0EPbij7oaS0=u?@aJAX|8txAhRZ`s zs&b)j>91#vZDaS`h+>7jiyt$$(TuWr=+=!3qZ6%AA4X9p&J)Ga8T($+PN$8{B@5fr1d{hYgT0++NV(YscG9oc+S(c( zu$Bul_3USb!$Ibz&kU+Q?}so;U#fAL^L%rC^IBdI*e!UOUQfEDe1B~O%H4J_hD^yn z`|5rpnG)|FczJ^kx600UZ(mgDXr*fDx>uMq)nL!oq|L*w(Gg!hDa31Qsv0R0wl6Y% zRewBF#Ldj7>!yhAY=avVcI6-fZ#KhU_9TBtT;LF>P0#P4hK=r)n9dtKzZGBTTyCd3 zB7p>k05S|1jfHx_3`d|`Px>yBM%;I6 zy_L}|Xm%Fx;cc340N3_C$0Ts02;LrYiexFKYPt7v8B22G?r#L4og4|?o7GZv=;_j4 zhuZC|^ryh5rVM;~@7e2KyY-+Hc4P3<^D@II--YHUoh)$7Fp9+(LeValbD+>QDY88*3s3IlG?a+jO=FTTT)il(wg0=2EG*qbztQPsg`8QBm7vaf3n3yL7yS z{N=~XA+xN^d5u(<1*3bgG2g@j4;<<(I^JSQqw?1Q8CuB8V-j~AMdeB6^CW|iEOen9 zc!2Qo#X*bJak)Wt!Ay&vTL^KN3LY=;b{817go3)ZhulKFFuADU5~;U~Hu(8{{~+f6 zCw$kDxVz?8?XVaGxc>NZNV1e>c-c!?P31}iXvg$uUV;?zdy8-fDl5LhOTo#>`wPuP z8jy41cgyz=6lRpb2}=upnaBxSZhC@iN2FSSjgXFHaS)-wqZ+vv{yk-(2Zc;}Ff0US z#3a*lsl-OE3#|bdQnSsClKjev3S$tHOpu{0DFMMRtI^FTfs7rxhbV;kGt=feskeuh zD_!@yX)VvV?RY63L#aA+kS|;tNkKsH`Q1dNDQBydK9^9@kS<fSS4%Y+DwNYnSnKj6&twm#?VcHF5ZxE7yQ~FHzcuoT3Op+vyrx z45{bk@R*;gTzfsHKx?Xt>ykc`3n6}fIeV(wO=cYPeP(eLQeec%ap&@#kS4=A2Q5h} zwqa2@i5ITJntHMkjlRVIPRfWa{XWy|;}k-CLW*B_s<__m!398-);OIP zTATKH1iWTl8sIEH6mJ6{GdxnzH9uRYq|vNz+OR!1pxzD9jwRi@RMroJMd@ZnNf`-3 zP7}WiFY5eI3xVCL66kJfVBD8m_rrVem!?eTz)egJgPwuSS0ccYFn@e^gLZ<&&U&)a z6tiB!ARXGu$VUyX`tj;gY>&Y2{@OK{Z7=o2L%O1GPb#V^(%hZCl=G|3;Rr9Ul^-7i z1)JoeZ^2pYWPyKOP9nMS;{0@zQb0&pc;X~0b|_n9lEuzyzS##udUb?K7MKSypms*{ zzOybE;9Ij#D_FB?S@@Z65KhFLz<6*lWMuDPh-&k6O$;lJ%nVL5(GGJxen2QH+3|C$!mze@rpe1bL{MOK za$`(|ry?n1c(hOvLUJS6PQah2{2?v%d-i;BqwR~I)x(cj*yve%x<%O@QMx`0S~IXt z`FJd;ezq$O7}_+;&dHm4fj*1JP5b8NN9IVD&hxdz1aqjOxaA9zS_F^xf}#P%q$4q@ zni-^44>`kFyjj4hvr7k?Jx7luv-gb*+4o)8&Hn;N?%4le&E5AbPqlP9TGWI_4uumq z9sU)|#Tbp4wCYQrqmwpS=pGPGP{dtdv~Txs3_SR=-*W|$8Pkvc$-0)L@u?5&H=$?T z)@-$0BAyZmMn)%{c}U*R(GE*GGV`_cK~+G20b{0gMv}~-=G!KfiPn*xvO0uRcdiD7vXI)YVM>LLzpCt%i! z>t2ui+pW$}2uQ*t4^;Sl7-8YY|JuOJsd^_+eIN#jb?{Zs5!K2Cyc33UoRa>-8v>`8 zGx$Ylar5cN60F#0hPs4WdjPx#{xcr2FfK12j>*3&sl_9twTUfZXh^i_k%_!=B;i?w z9pI4~Z}{cNPnp(=s=0BEijG_^94_yVInIT|OA=&M9CO9)^LGWgMjAGl_;_G~E)ef9 zex6hogsi2cS#4$|HSx4OmA9CrOqlpmR|nGl(#$%Ur{B4gcH1ncPlke~D) zC9vB&&wnX4kT`2oe+Q0niaVtUq)dY99Qh5|G*AAxB*dBL0!jZ zvJ@JX89PFS8tU3OoOOdL4tC>B446 zx2``NDy4zmSG1tGO;z(uJim-|ZfPwE(be?)LHqM_5#0B0ir|LUwMuo-Wt3Qxzgyxp z7Ff-W4*Z%FCWhIG)Ids9+-ah`OmTH~s(ERIY*xAxz zuWUxf`(E|nuCK z%xy*b8L<8KsCao%YFV0`^Moyx@<#%eD&Ohb)>Ew1+z7+rlADNgKFdQQ_qD&fu}3+s zqFy*fY4)7Vmt18yH+pH8r*Y-FAkiD9i+WIS$KG_m!rR5-eBv^JM=sG-lv*au-OiKJ26*jx2QJL%sh!oNiIACAK7)x;3U#u z4>f-{;l8PVZ#uy(P|GJ^ts zls>A3*Z3u>o#<(E<(@#Hr#u+S%pRN1hyl=r=h@X3wEQeZ_HCTZ5D1CDNqzRO6#V?8vPZU*chq8n)rD2CV z^TtV{3^!5tK3#@QO2uVGOnk9M0q7HGq)zR+9L<+bfn{opeNu44%tfj-JjMLESP8O< z=e@=syV(n59GZSCc_?Le>(b*mE__a73bC4Bg%5E8z$Sq#T_%#)SgT8?gPh?GG41}!%`vFFVegMgMSC&(u5LE$1O)WIUO?oRUwJ3f znuMD6ckx+0wl_<8MA2x~bp)FGcH!^CVwV`YfFke2R23h=hrN50f z`v)0MBv0l>)qn7%aC~xDI1lp;E|tn^I=+Zi3eb7o`E&DM|N?H90jLto6Un0eM}|Eqv>Gaf~@x?^s)VAeyh<&&y^Vt|!(S*T2}| zBBJMpI}!Pfc&#oCoo&iXuf@%+>q(o15$d~TkybS?h@A&er6Rhhh6O1t)DD7{q4229 zw4+rV8DYQb)=WKQH1}GG=Tdhp5{UZBl0@PE&>ef6n>F28Vq zq!4a_>pM~{g-{=467R7S>V9TcI<%-dPN+Ybsxpk46XD(-m#fuc{hqb(xdi;r8M~sm zr_}rmix@q*c+Zg)yY!dO7g4}) zwc6XgfK;|NF1)a;-`9klFBXTyHTYJRXj4~|O2oY2<(O6X3mKN**yYIn77fy(nX>Vx z3A+fJ@o-vu@WjWg_d=am*rUBK0P%@b3Db4o1)V49A<|w-Y~z`ffQa^`Z|@6YA(xc~ zY|GzYU*s?`I+BM|))-Q(VtA@Z8S!YT=j#>#;)@PpcGU^ zvqK+A)1n20XsF~14f^(b|V-1)=LCva|1#T`#~sP7@WPp~&GNiYVQUyE-}kE&<)};BXhYck}k03UG_l z{A$PzXy^QGCg-mlyl)3WuX=c#_xbQ$+Hxk~nuZ@cV_mycV&=_Z)@&Jwdhye~{cg-jYM}0wbhq z?6r17S%IJW7TSU~DS2N3px^h+_n7BTv@iz?19#yUhf=YKnjmw@`>h6Vb+!F6r$1jQ zAWhexwE{9BZWK^M>d9AUjJWk&(NuqiY|?7}wvydAk=FJG*0rKb81VD{uqudeR-^ik zz*{aAzO`N{qm)@7=#czr-4oYQ>Dcc$l6SuKrPC9{`m+%ttET-vI!ZA7Qg9=q2qv4?Xjj zEZ7{mI2+jn^bSDfsd>%U>Nwuy3u>Y9z)c_M;$yW$i(kagp_s1Uwd* zvA|;y(zdyE5kP}j^ZEORbzR3YW2sUfpt8TtI4%bTLWP@KUU;1}aTpHKsa$K3>|D=h z>x8V+-c6N>*vsT$tW<1^2Y+`~G18#1^zSc<)VNy?{%UC0mFfTL_{L<|BfYMpqUA{? z-74Jj;cXv|sT#qM{Kh-`VN$m5zAtvIF2JG{=)urtVV4=*r0`H`3s&7g&!FXrXb2E1 z)*21^j7hA`gC2yaNYY#TEGhm`n=I49qo0OK9fJO2W zu!M(FS+LS*bg9JUu7?bIT&=-GD1etbSm6gh(T-4imxfXE? zD%)>?NrQwo`WypU28rKWLik@i#rB$H-kS86fP ze5dyH#i84UeiA<1mUPTt?n|0v`D{*Xpp-h*%>}yo>>R7fsqQVk{$d+d zSR$`CuFCcu-Q6m0yO=hAiqr~|Fn+R<@Bw zoL7CmMy(1731=Vs{DFqfBHTMQ3b&`)VId^PEMm->_Bc9OhWWV-xxM;)0*}fEn#uEP zpmvB($KjtSr!g+p(5*lF_uG?VgoRx52fxTgBPoB~CMxf~T3^lruC-e7>pSc-ulN-g zl}%K!s8f*jS~w)vs!TD~R2UU{Y$55W-@o7HZ7$A6JD?Tyyp^nwvD{31J&*&g_&%5| zN???oQw1Lc-OEnDI6MyOKsX14Vf>8URBOkr>qP0~Q3Ii(Kvr4uz9~>k$c0*7dS+rl zAU-irJrqz4T<*8j-B2a3YgW0XSh4Y!Hx_0Zt90&sDweu#u2ZmarkX=1eWdbQC1vYd z{87=fmi*GBpN)VI#^)wb1FUsI25o;@J!yV24wAzf^MBqQwxL1!0IRV*@8|6sI9SvA zVNrk_4l>Oab^$BC7$-L9pRYgMyA$$&Evs>5cW5%C68bLa$4em6GOE9u|zvRSY6B+Cdj<=!8*X@UKG z%rRwE(&tKI-2aPiqTEm?De9jy{q>ko-_xU(M&m*tzKBaJmj+iGX}GOb5cisUz=UO& zV^lD3zE6- z-0iMD>b@A8@X5_()T`3!#0S%(yFljrX#U%q4SbyG`k;X9^G&uW!%-1VEbRvk)x)6N zx}Ft2-z(Yi**6aS;unNmp2PkI{X{eZ29aWbl8Jtdt%#Qb2%KT=FG} z@zz1<+X@lD&_Wao?ePgyhvNtMgejpKrA57bwrqLjdbUqb)HN`taHx@jK0hlsJ#fR8 z2KQN6SL4%;&+kt+k}(=qzK%0p_0tnXZAWjHwOxDmVIE(6ydgHxB>enF_julEMD z)_fnInWEI8xr?J%Gji7E;}YbF&Wv^c+mSHoi|29~9Hxes%um999t;uw7CooAFY2s*jBiNDyg=)1Q#`vx{(~zB0Yc4;5OY z7TPeRPn5!ih?`|5@WER{-B+~3+;5W>+oaXVkULNx-46$V_x&mPCKQO0xW-;#cNFtH zxkp9N3q?q`U1bt?7n5X-{aX@#<;{StgoN78mwbxZRFG zK|jjGN|U`qAdVH)2%@2mpTgACk$l@&6BHvn%Z<44hli^%$ReB5l7vj~AxBK8HSQ1z zb2;YB$1x{{ey%6iJUIC%Z-2VZ{rt{Rz>M@q2qWV#+jH{pY)R8 zpAT>uQDr5nc3MThA?t>4r~N}61rp1Tc02jcV0DGRcXT{-pjP&chCWMy`HV3TsE5*A>_rQWh<=Jk7%fnA=GIBQp#5hqd*)c^B1YU!e4pn`DDwOKlsM} zIf1zW!r$CP>BtD)e8}WQlYmsLFvQth>P^%L>U;+^!LpuonUDFxl4jREzMaARDfp*k zYKDApz-9tQ>!Jr03|Jv#VN?7E_O~6X$~ad(%TT8;d735EDmBV;bbZOwrD9yGacCv= z*iGg%rI%r1W{}^T;?!u7n0C9OpyZy59S{muf4nzS)-CU;@`Yhk*<3&^Uirhngop^L zZL1TxU<`sQdV!E3!i;P^SJ-~W@3Vo~3PIzav)}h2j#(y6wV77$JT#9CVol#1R*>+< zW!oI-6%A&KKpAhc>kLlbpMV_!$q7YAC9a4PqWFCNYT3=6Ytkn34WW8#Y%ux!g8uGE z?WE6kpR!hZsoF^IXJI)ox<@;Tfo}TJqwn6a9imTD&6a))_MA>G`&I4)r|tyY37Z|b z5lLICRbzE1@C*|E%&;0lI5Pao~rTG#=M#b;O0T`CAsPst;+blX#jD!5qpd)y(f>CC*Cm|?OuJCbQRXVwx z%2kr0bWwhR`CSh1`z1-2kzS|xYkQQPeJhRTOEPj#!=8r@)s@{|l)RnZlE@tpz51++ z!}mwL?b~WOGhHfM1MFS;h_jvwP!Xj4C*598khg?ti2E5X(4fL#RMmWx+;?ZrFlqh% zUzo^23PJq6%_zg_T1zgkClv=Zj0IRnAP9YSbf>(t`Kv`Zyi9msz6Aw@GAB-HKYB#l zK}N)%aL!0G4wHmf-2CnI3KM7L)^@F%MzRv`UyqL|71PQ%=dftW+!0@~4S*$lKM8XI z@JiC`h2okNNBrPJ^Es!Nza~eDrg7hVHYWlFO)jHDQ8;?J4~UCFL|lI#=fx=?J|*js zkC1<++~eImJf%}$Uq(+Qxa0_d7Q=12IKZh}5 zxH}t!buCk;J`_M!Hv23TNJg3FE*f&l3JkDmwwZrWroNVV@U(T{Ze&#DSVNmB*G^j5 z{1Cx=4P@HYeBg*d!h!5dPtB-8{9U->_R(JvSQDen1!+}At-mM3fTuD~&zJY#bae$E z<~>T^O40Ewpw}}9w8Zq;Eb4)X(X3tl6l)9h#)k*24({s<2 zSCUr$yyv!GAA>M^!3D9w!DH7!*Cyl=HipY;PXdWcQ$FmE{ZMG5iI0qowYJCX#@~TV z(Fo4@AL6oUKtjJPDQkZsKTK|vfO|ophT9_n{4E(CpLYA3u`UI!7rXsWJ~CV(r^hn` z=BC)YllE5)|4GI?4Ou56x<4qesdai86lN^^9m?L+YN;@XwO>kR-LR}=s&K-&RVj(_ z%rP$ew@e(x7hUNBP#R?#q%#htCQX#s6f?O61WZ68P;h*gqZ{En61Ar`zlmH@M&5by#PHMR2sQ9zcZ^HVqLu{?cxTC76%&NLl2gkss^;960;B7xe3gSWR zz5v5Qa#C1DPGXb}PPv$z6H43T$qLLH~5zZx4MQ4UaYOxR|EfZ5U5{fX-&% zjPu(<*6C|UCgg5Q>L$&&-~-8+Onlpgq+Ld4mkt z7u0|8V=Z5)46B|i{axv1I{*1egsVTCM%wrrv$dF3g5YGVjUdIj{1tKPUZ(T1MJjK_YL4c@|QvqFc?GU>E(`GIyF)5WZn6S%NBvny6qyKl87x zx#E66ecrJrjs{bjt6yQHm-HD1fTvv`V&74Hf{)O4>W54-^cf>ZffmOe0*Gn?`W>#8j>y$mlaLy zlc$WI=4!ysLaeLZ2;2xG?sWK8fR@asB6efHjoAi2#7D;s)VoT@n9fk zS`42sa?H0ZWBeKdL=`j0n2-lJ2sHHEF@w2!a#e2qntweXx43N;)vp5 zWrXOOGRTYs4tm~ms&Z-4N5#1ZZUxL2xy|=(-5bswe25rYo&uJOAFI;gQN_Hft?UcsULtIMt^ut zx@z8mYvL$W)L3#dlwMIt8|#K2id)cs>O+~Bp1D1MdZmQTmUeQqbqjT`jnFKw*+!D_ zdAJ(2zVxWo518kQ_0lLwHm*vzy@0M5l`Ek zoqA5Aq zZO86S&~Fx=Z>l2u*w@#?^jQqaY~>PyGInBm7b1dVLM6Z0=Mw562zlCm6Bw-H*~hU2$+#(q9aXWtj8T zvDPCylECWv05SY#pw;kKMWt;hn^ULX?`tHI(FLkvyFIYZH8!7Ph;8fRGo~cCU z*}M4t=e~F5+~@c7b#M1@N8rG}C3F2zNnW~ckea(ZW+n_$CYAQ~(iyU8@M1HE^F#7v z0?ukPc3;Y3`3#?a@!mMhqZs6y4C3^>#@k|ouYfWE-&gi{boV;Acf|U@s7M zR{Nzt?_~sO)lzW6q&QZ%zAVr|lTcr`q@H!f2_j5F2ZS!w`xcg`huaW*e5fsR%8`7qI$z_E-`Uzk&QPix8_Y>DgPzU{ClPT zE(%dStvIfyHXiHl^h;XKgkDX*)kg@OnX5FO?}8(*dek`Mj$>7jzJV>vC)78QrrfQ6 zw&KJ|BU-ok;CO{y+7R#5q~4y7U*RlEHooxdA?D(^UXaD=TDQD;naOB^oUfF$FP)!ur5!NIcwecb|Vr>vhUzc%eH?TbGg{@hbPjoRgqcbKu! zDB+T7K+h~?t9I8k8SG3(`b#I+=FMApXj(IzyWl`o}MxgTw+x=1JhVQU>JGrUz0RFWDaf`3fJ`MwKai<%WZk zXnIP^D?`D0M|)9^zUL5Kl>WYVY=Tren`+?glAAsf+s_dSD@6{OC@Bj7Ie#@McgX3V zpMHi|;dhPdOCelXV;oSgpfY1Egi#niGjDHY?63fGnX&WdQKpd~zD&=E>FngTF<14e zR-CR!d$%u+6>p~1>#eD+?!AnD{HC?;ZP!yB~{T@88rhpwLsS9vrGSM(s6x34V324QyrT zuCuh32wUvkjNW|e*cyFZUr|NS?xJs-2@HUc`ytuIlr$NmN25FO+oMsr>vYeu8d73` z*JW4)<7=<9J0_Ce8b7UxxLP?_z|lLQUkC4=6{X7wJ!LB$jW3GSh9Ybp-FXmI^|^(M zQw7${wS=Na*%z6%FTUvoUum&A(G2dDhihm1j0|PuoSNJV1-v+7AtbuUO@PTYYnEkzEl*o3dm3#MLKDhf(3=itxc4&tv2osgB6wHac&R8Y?p1AJLRTS6$ z;#2Kvt*x(&lMY4?WI|oUHdkcUw;^BjV(Sl$9*;|7qPTcs!bQ34+D6Zb0ah%|^qzEU z;b3C+cx*T@lG!~o3Tb=d&f%d&KjfH57^+|4$E3^Pc{P2giq8y%L6yZD4leB}JPv*P z004ZHB5r(yJL-Zp(tP=%guX0#6V@7%<_xFl)EF%{SHo0T!0E;(aA(|Pb@#-!01b7` zpp5=eb3#5}sJGH5{-=9D(2HA0h}KwgnF)T>rpoPZQNqNsVPAHQl^ylJiPY*WJC858E9# zhg|zjsT;O-G-xK|=b1U>m>Dh*ltzuNLDaY^Wf(1@9fy9I-JH+y_RD$)oyvXz((hLY z-SUNWT0ZRfPjviMP;~@nQ|lr|`qa_-&;VP^clvuNWM(J6OM~Wa#J8}E^FZQ&!PEZ6 zK-Ku3$7}s-iTbB7&+@=MPQ~~G#jMzjDxmf9?J&2d%Z>t-o+!S+B9+ymPBL(;W~-x& z%lV>1@_R|C)5kBga{NYlB&pj~Q#fU+5BjuQ$OPQ!%I`5>Y2q2W7R+$q6V%hI;g>du z`JVvKx)~)=duQ#HzK?l6J9BS1I!ql%NhelWL$(x#cy0?hvd*eaW~t z%IzZdzYpx`-2;IJc1UmU%%p7OVf+FJ(3_70POp08k<%=Qio_6p zdv^4G6FNDPS|%SulWM`*+2WrB^Kgm;K_eH6B09A59~uhbrmw2*l-CY})$=3_nPkFZ zNPj4Y3%zAKJUjV&O#E23Qm040p{2Y(fpdkI??G%h_Eg&6MYHBl0;P9r&HEuA6_`A< zk~BJtB3~g$*ko2GoHjo|B;g{s%NrMNm%gg)hKQ`kXPPB_LZKx*cUK z%caBBCh+jZYx^9JsPH$vTmR49;XA;?3#_`{42VelYNptP93hOH?PbH+43u9{FC2br z&@(@snFKn@H}TxT@J9v7PdT!z%FK=Br|y0+J{TqXfsCSeEmhP^+>QH20d&0gD8%^e z>WJvko-Jh~Q7e91LF`~^X$K8B9dDrT)|6Imz~4-uCx$!imaH*egfF{2TT8nGQMTI- zAKLAg>r-~zNk8=9Nfk+-MSzByiK94ue8+u4EX5{}xYNrw@C(4@=2)?J+M*0JnFv>k z9iz+?r0YxaLz|`E`u^%>AXtxg*a=>ff~ z%X0N|0ze^nVLsn<8tXW4Jo#B6tn$>=6uvP@^6MpDO3ZH!UQT^2@jS4!ND<$=>Qeu89LJ@MT`!(|qxXvR)+UL;Y5+buO55 zXy%Qj2f&SS1PTdKZ~J?0r3n*$9s=I~{kwv~#C+0&az@GHU<{7wToE_#X~o`cTxn$0 z#LWBYaBEt})NkGgLz$CTChfuw&;+ytw#wGTX$&=_{G5kxA_||M0hRA0tgw?KlT`iQw(*eH6#9T!<(#^O5E7i&Q zGVyYR-SRQE(Vf0=xmS<2XF&i>2ETm?-hVFrGfE4Q1QJk_*BJ}rZoT}-h-Z$laCcJf z#hE@Xq?CTof63us;YQxS%WY!7^syhv2EPOGs^cg20#9i2#&Uk_0th0r*YDDD8EA%G zdzpR7sA=t;1#}9zX?_tHA`er5r~V-`Q@La$K`G$|TALOno#%1ISa9W^gG;gpZyBEI zHIViUlH}0&d@V-@cM7`*3L(x(B*Qaz+3LMF#? z=;dx+FF@j3y(qmXJK!H#6uD?34gc|@-b>;R#(@eP&@(=Xuqh$Hrc5opK8=99B3kgI>5i~b1C8^7g5F- zxc&v}P$wUAgn@>c7SY@(#*;O|3#2YiM*KLEmYfzlfe!X)(7`t>5DQJ8gqVk(*e=ot zzPOZ~HJ&mB>MHMvr=3K&zySKrDf|~lpfNsVI@btiyCi9>$M4*VLSz0!-1g1NZcxxQ zG!4PPq336ST~7W*hJA(Sn-E;xnX0yiBjFGTPsoM}9N(plx;1>s*}1@>pi= 1.43.0 < 2" + +compression@^1.7.4: + version "1.8.1" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" + integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== + dependencies: + bytes "3.1.2" + compressible "~2.0.18" + debug "2.6.9" + negotiator "~0.6.4" + on-headers "~1.1.0" + safe-buffer "5.2.1" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +consola@^3.2.3: + version "3.4.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== + +copy-text-to-clipboard@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.1.tgz#01c3656d6c81a6aa713aa0a8d361214a1eeac6ae" + integrity sha512-3am6cw+WOicd0+HyzhC4kYS02wHJUiVQXmAADxfUARKsHBkWl1Vl3QQEiILlSs8YcPS/C0+y/urCNEYQk+byWA== + +copy-webpack-plugin@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" + integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== + dependencies: + fast-glob "^3.2.11" + glob-parent "^6.0.1" + globby "^13.1.1" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + +core-js-compat@^3.43.0: + version "3.45.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.45.1.tgz#424f3f4af30bf676fd1b67a579465104f64e9c7a" + integrity sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA== + dependencies: + browserslist "^4.25.3" + +core-js-pure@^3.43.0: + version "3.45.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.45.1.tgz#b129d86a5f7f8380378577c7eaee83608570a05a" + integrity sha512-OHnWFKgTUshEU8MK+lOs1H8kC8GkTi9Z1tvNkxrCcw9wl3MJIO7q2ld77wjWn4/xuGrVu2X+nME1iIIPBSdyEQ== + +core-js@^3.31.1: + version "3.45.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.45.1.tgz#5810e04a1b4e9bc5ddaa4dd12e702ff67300634d" + integrity sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cosmiconfig@^8.1.3, cosmiconfig@^8.3.5: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + +css-blank-pseudo@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz#32020bff20a209a53ad71b8675852b49e8d57e46" + integrity sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag== + dependencies: + postcss-selector-parser "^7.0.0" + +css-declaration-sorter@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" + integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== + +css-has-pseudo@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz#a5ee2daf5f70a2032f3cefdf1e36e7f52a243873" + integrity sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA== + dependencies: + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.2.0" + +css-loader@^6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" + integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +css-minimizer-webpack-plugin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" + integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + cssnano "^6.0.1" + jest-worker "^29.4.3" + postcss "^8.4.24" + schema-utils "^4.0.1" + serialize-javascript "^6.0.1" + +css-prefers-color-scheme@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz#ba001b99b8105b8896ca26fc38309ddb2278bd3c" + integrity sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== + +cssdb@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.4.0.tgz#232a1aa7751983ed2b40331634902d4c93f0456c" + integrity sha512-lyATYGyvXwQ8h55WeQeEHXhI+47rl52pXSYkFK/ZrCbAJSgVIaPFjYc3RM8TpRHKk7W3wsAZImmLps+P5VyN9g== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-advanced@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz#82b090872b8f98c471f681d541c735acf8b94d3f" + integrity sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ== + dependencies: + autoprefixer "^10.4.19" + browserslist "^4.23.0" + cssnano-preset-default "^6.1.2" + postcss-discard-unused "^6.0.5" + postcss-merge-idents "^6.0.3" + postcss-reduce-idents "^6.0.3" + postcss-zindex "^6.0.2" + +cssnano-preset-default@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz#adf4b89b975aa775f2750c89dbaf199bbd9da35e" + integrity sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== + dependencies: + browserslist "^4.23.0" + css-declaration-sorter "^7.2.0" + cssnano-utils "^4.0.2" + postcss-calc "^9.0.1" + postcss-colormin "^6.1.0" + postcss-convert-values "^6.1.0" + postcss-discard-comments "^6.0.2" + postcss-discard-duplicates "^6.0.3" + postcss-discard-empty "^6.0.3" + postcss-discard-overridden "^6.0.2" + postcss-merge-longhand "^6.0.5" + postcss-merge-rules "^6.1.1" + postcss-minify-font-values "^6.1.0" + postcss-minify-gradients "^6.0.3" + postcss-minify-params "^6.1.0" + postcss-minify-selectors "^6.0.4" + postcss-normalize-charset "^6.0.2" + postcss-normalize-display-values "^6.0.2" + postcss-normalize-positions "^6.0.2" + postcss-normalize-repeat-style "^6.0.2" + postcss-normalize-string "^6.0.2" + postcss-normalize-timing-functions "^6.0.2" + postcss-normalize-unicode "^6.1.0" + postcss-normalize-url "^6.0.2" + postcss-normalize-whitespace "^6.0.2" + postcss-ordered-values "^6.0.2" + postcss-reduce-initial "^6.1.0" + postcss-reduce-transforms "^6.0.2" + postcss-svgo "^6.0.3" + postcss-unique-selectors "^6.0.4" + +cssnano-utils@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz#56f61c126cd0f11f2eef1596239d730d9fceff3c" + integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== + +cssnano@^6.0.1, cssnano@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.2.tgz#4bd19e505bd37ee7cf0dc902d3d869f6d79c66b8" + integrity sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA== + dependencies: + cssnano-preset-default "^6.1.2" + lilconfig "^3.1.1" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2, csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.4.1: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + +decode-named-character-reference@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz#25c32ae6dd5e21889549d40f676030e9514cc0ed" + integrity sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q== + dependencies: + character-entities "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port@^1.5.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.6.1.tgz#45e4073997c5f292b957cb678fb0bb8ed4250a67" + integrity sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q== + dependencies: + address "^1.0.1" + debug "4" + +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.5.218: + version "1.5.221" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.221.tgz#bd98014b2a247701c4ebd713080448d539545d79" + integrity sha512-/1hFJ39wkW01ogqSyYoA4goOXOtMRy6B+yvA1u42nnsEGtHzIzmk93aPISumVQeblj47JUHLC9coCjUxb1EvtQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojilib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" + integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emoticon@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.1.0.tgz#d5a156868ee173095627a33de3f1e914c3dde79e" + integrity sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +enhanced-resolve@^5.17.3: + version "5.18.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" + integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +entities@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" + integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== + +error-ex@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" + integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +esast-util-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz#8d1cfb51ad534d2f159dc250e604f3478a79f1ad" + integrity sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + unist-util-position-from-estree "^2.0.0" + +esast-util-from-js@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz#5147bec34cc9da44accf52f87f239a40ac3e8225" + integrity sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw== + dependencies: + "@types/estree-jsx" "^1.0.0" + acorn "^8.0.0" + esast-util-from-estree "^2.0.0" + vfile-message "^4.0.0" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-util-attach-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz#344bde6a64c8a31d15231e5ee9e297566a691c2d" + integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz#b6d0bced1dcc4f06f25cf0ceda2b2dcaf98168f1" + integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" + integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== + +estree-util-scope@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-util-scope/-/estree-util-scope-1.0.0.tgz#9cbdfc77f5cb51e3d9ed4ad9c4adbff22d43e585" + integrity sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + +estree-util-to-js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz#10a6fb924814e6abb62becf0d2bc4dea51d04f17" + integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz#827122e40c3a756d3c4cf5d5d296fa06026a1a4f" + integrity sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-visit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz#13a9a9f40ff50ed0c022f831ddf4b58d05446feb" + integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^3.0.0" + +estree-walker@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eta@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eta/-/eta-2.2.0.tgz#eb8b5f8c4e8b6306561a455e62cd7492fe3a9b8a" + integrity sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eval@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85" + integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== + dependencies: + "@types/node" "*" + require-like ">= 0.1.1" + +eventemitter3@^4.0.0, eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@5.1.1, execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +express@^4.17.3: + version "4.21.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" + integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.3" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.7.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.3.1" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.3" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.12" + proxy-addr "~2.0.7" + qs "6.13.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.19.0" + serve-static "1.16.2" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.8" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-uri@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" + integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== + +fastq@^1.6.0: + version "1.19.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== + dependencies: + reusify "^1.0.4" + +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +feed@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== + dependencies: + debug "2.6.9" + encodeurl "~2.0.0" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.0.0: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^11.1.1, fs-extra@^11.2.0: + version "11.3.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.2.tgz#c838aeddc6f4a8c74dd15f85e11fe5511bfe02a4" + integrity sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.1.0.tgz#632aa15a20e71828ed56b24303363fb1414e5997" + integrity sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +github-slugger@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.1.1: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +got@^12.1.0: + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hast-util-from-parse5@^8.0.0: + version "8.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz#830a35022fff28c3fea3697a98c2f4cc6b835a2e" + integrity sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + hastscript "^9.0.0" + property-information "^7.0.0" + vfile "^6.0.0" + vfile-location "^5.0.0" + web-namespaces "^2.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-raw@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-9.1.0.tgz#79b66b26f6f68fb50dfb4716b2cdca90d92adf2e" + integrity sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + "@ungap/structured-clone" "^1.0.0" + hast-util-from-parse5 "^8.0.0" + hast-util-to-parse5 "^8.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + parse5 "^7.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-to-estree@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz#e654c1c9374645135695cc0ab9f70b8fcaf733d7" + integrity sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-attach-comments "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + style-to-js "^1.0.0" + unist-util-position "^5.0.0" + zwitch "^2.0.0" + +hast-util-to-jsx-runtime@^2.0.0: + version "2.3.6" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz#ff31897aae59f62232e21594eac7ef6b63333e98" + integrity sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + style-to-js "^1.0.0" + unist-util-position "^5.0.0" + vfile-message "^4.0.0" + +hast-util-to-parse5@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz#477cd42d278d4f036bc2ea58586130f6f39ee6ed" + integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + +hastscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-9.0.1.tgz#dbc84bef6051d40084342c229c451cd9dc567dff" + integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" + integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== + +html-escaper@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-minifier-terser@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" + integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== + dependencies: + camel-case "^4.1.2" + clean-css "~5.3.2" + commander "^10.0.0" + entities "^4.4.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.15.1" + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +html-webpack-plugin@^5.6.0: + version "5.6.4" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.4.tgz#d8cb0f7edff7745ae7d6cccb0bff592e9f7f7959" + integrity sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-cache-semantics@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" + integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== + +http-proxy-middleware@^2.0.3: + version "2.0.9" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http2-wrapper@^2.1.10: + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +image-size@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-2.0.2.tgz#84a7b43704db5736f364bf0d1b029821299b4bdc" + integrity sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w== + +import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infima@0.2.0-alpha.45: + version "0.2.0-alpha.45" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.45.tgz#542aab5a249274d81679631b492973dd2c1e7466" + integrity sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inline-style-parser@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" + integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" + +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-npm@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.1.0.tgz#f70e0b6c132dfc817ac97d3badc0134945b098d3" + integrity sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.4.3: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jiti@^1.20.0: + version "1.21.7" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" + integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== + +joi@^17.9.2: + version "17.13.3" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" + integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== + dependencies: + package-json "^8.1.0" + +launch-editor@^2.6.0: + version "2.11.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.11.1.tgz#61a0b7314a42fd84a6cbb564573d9e9ffcf3d72b" + integrity sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg== + dependencies: + picocolors "^1.1.1" + shell-quote "^1.8.3" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lilconfig@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +loose-envify@^1.0.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +markdown-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" + integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== + +markdown-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" + integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== + dependencies: + repeat-string "^1.0.0" + +markdown-table@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a" + integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mdast-util-directive@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz#f3656f4aab6ae3767d3c72cfab5e8055572ccba1" + integrity sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== + dependencies: + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-from-markdown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz#4850390ca7cf17413a9b9a0fbefcd1bc0eb4160a" + integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-frontmatter@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz#f5f929eb1eb36c8a7737475c7eb438261f964ee8" + integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + escape-string-regexp "^5.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz#abd557630337bd30a6d5a4bd8252e1c2dc0875d5" + integrity sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ== + dependencies: + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" + +mdast-util-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz#7778e9d9ca3df7238cc2bd3fa2b1bf6a65b19403" + integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz#2cdf63b92c2a331406b0fb0db4c077c1b0331751" + integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-expression@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz#43f0abac9adc756e2086f63822a38c8d3c3a5096" + integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-jsx@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz#fd04c67a2a7499efb905a8a5c578dddc9fdada0d" + integrity sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +mdast-util-mdx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" + integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdxjs-esm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" + integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-hast@^13.0.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" + integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz#f910ffe60897f04bb4b7e7ee434486f76288361b" + integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz#c691630e485021a68cf28dbc2b2ca27ebf678cd4" + integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-directive@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz#2eb61985d1995a7c1ff7621676a4f32af29409e8" + integrity sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + parse-entities "^4.0.0" + +micromark-extension-frontmatter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz#651c52ffa5d7a8eeed687c513cd869885882d67a" + integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== + dependencies: + fault "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz#6286aee9686c4462c1e3552a9d505feddceeb935" + integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz#4dab56d4e398b9853f6fe4efac4fc9361f3e0750" + integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz#86106df8b3a692b5f6a92280d3879be6be46d923" + integrity sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-table@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz#fac70bcbf51fe65f5f44033118d39be8a9b5940b" + integrity sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz#bcc34d805639829990ec175c3eea12bb5b781f2c" + integrity sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-expression@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz#43d058d999532fb3041195a3c3c05c46fa84543b" + integrity sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-jsx@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz#ffc98bdb649798902fa9fc5689f67f9c1c902044" + integrity sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdx-md@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz#1d252881ea35d74698423ab44917e1f5b197b92d" + integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-mdxjs-esm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz#de21b2b045fd2059bd00d36746081de38390d54a" + integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdxjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz#b5a2e0ed449288f3f6f6c544358159557549de18" + integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^3.0.0" + micromark-extension-mdx-jsx "^3.0.0" + micromark-extension-mdx-md "^2.0.0" + micromark-extension-mdxjs-esm "^3.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz#8fef8e0f7081f0474fbdd92deb50c990a0264639" + integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz#5267efa97f1e5254efc7f20b459a38cb21058ba1" + integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-mdx-expression@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz#bb09988610589c07d1c1e4425285895041b3dfa9" + integrity sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz#36d0212e962b2b3121f8525fc7a3c7c029f334fc" + integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz#237e4aa5d58a95863f01032d9ee9b090f1de6e94" + integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz#06b26b2983c4d27bfcc657b33e25134d4868b0b1" + integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^1.0.0, micromark-util-character@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz#47fbcd93471a3fccab86cff03847fc3552db1051" + integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz#d399faf9c45ca14c8b4be98b1ea481bced87b629" + integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz#2a0f490ab08bff5cc2fd5eec6dd0ca04f89b30a9" + integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz#fcf15b660979388e6f118cdb6bf7d79d73d26fe5" + integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz#6cb99582e5d271e84efca8e61a807994d7161eb2" + integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-encode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== + +micromark-util-events-to-acorn@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz#e7a8a6b55a47e5a06c720d5a1c4abae8c37c98f3" + integrity sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg== + dependencies: + "@types/estree" "^1.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-util-html-tag-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz#e40403096481986b41c106627f98f72d4d10b825" + integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz#c30d77b2e832acf6526f8bf1aa47bc9c9438c16d" + integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz#e1a2d62cdd237230a2ae11839027b19381e31e8b" + integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz#d8ade5ba0f3197a1cf6a2999fbbfe6357a1a19ee" + integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^1.0.0, micromark-util-symbol@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-symbol@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== + +micromark-util-types@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark-util-types@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== + +micromark@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.2.tgz#91395a3e1884a198e62116e33c9c568e39936fdb" + integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromatch@^4.0.2, micromatch@^4.0.5, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +"mime-db@>= 1.43.0 < 2": + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + +mini-css-extract-plugin@^2.9.2: + version "2.9.4" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz#cafa1a42f8c71357f49cd1566810d74ff1cb0200" + integrity sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.1.2, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mrmime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" + integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-emoji@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.2.0.tgz#1d000e3c76e462577895be1b436f4aa2d6760eb0" + integrity sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw== + dependencies: + "@sindresorhus/is" "^4.6.0" + char-regex "^1.0.2" + emojilib "^2.4.0" + skin-tone "^2.0.0" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-releases@^2.0.21: + version "2.0.21" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.21.tgz#f59b018bc0048044be2d4c4c04e4c8b18160894c" + integrity sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.1.0.tgz#d33504f67970decf612946fd4880bc8c0983486d" + integrity sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +null-loader@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.1.tgz#8e63bd3a2dd3c64236a4679428632edd0a6dbc6a" + integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" + object-keys "^1.1.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" + integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9, open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +package-json@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.2.tgz#61d46f5ed28e4ee62e9ddc43d6b010188443f159" + integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== + dependencies: + "@types/unist" "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" + integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== + dependencies: + domhandler "^5.0.3" + parse5 "^7.0.0" + +parse5@^7.0.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== + dependencies: + entities "^6.0.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + +path-to-regexp@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.3.0.tgz#f7f31d32e8518c2660862b644414b6d5c63a611b" + integrity sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw== + +path-to-regexp@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz#5dc0753acbf8521ca2e0f137b4578b917b10cf24" + integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +postcss-attribute-case-insensitive@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz#0c4500e3bcb2141848e89382c05b5a31c23033a3" + integrity sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-calc@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^7.0.11: + version "7.0.11" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.11.tgz#ad6b3d2e71fedd94a932f96260b596c33c53c6a5" + integrity sha512-zfqoUSaHMko/k2PA9xnaydVTHqYv5vphq5Q2AHcG/dCdv/OkHYWcVWfVTBKZ526uzT8L7NghuvSw3C9PxlKnLg== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.0" + "@csstools/utilities" "^2.0.0" + +postcss-color-hex-alpha@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz#5dd3eba1f8facb4ea306cba6e3f7712e876b0c76" + integrity sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz#5ada28406ac47e0796dff4056b0a9d5a6ecead98" + integrity sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz#076e8d3fb291fbff7b10e6b063be9da42ff6488d" + integrity sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + colord "^2.9.3" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz#3498387f8efedb817cbc63901d45bd1ceaa40f48" + integrity sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^11.0.6: + version "11.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz#6b450e5bfa209efb736830066682e6567bd04967" + integrity sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" + +postcss-custom-properties@^14.0.6: + version "14.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz#1af73a650bf115ba052cf915287c9982825fc90e" + integrity sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz#9448ed37a12271d7ab6cb364b6f76a46a4a323e8" + integrity sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + postcss-selector-parser "^7.0.0" + +postcss-dir-pseudo-class@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz#80d9e842c9ae9d29f6bf5fd3cf9972891d6cc0ca" + integrity sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-discard-comments@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz#e768dcfdc33e0216380623652b0a4f69f4678b6c" + integrity sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== + +postcss-discard-duplicates@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz#d121e893c38dc58a67277f75bb58ba43fce4c3eb" + integrity sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== + +postcss-discard-empty@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz#ee39c327219bb70473a066f772621f81435a79d9" + integrity sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== + +postcss-discard-overridden@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz#4e9f9c62ecd2df46e8fdb44dc17e189776572e2d" + integrity sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== + +postcss-discard-unused@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz#c1b0e8c032c6054c3fbd22aaddba5b248136f338" + integrity sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-double-position-gradients@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.3.tgz#d8c4b126af89855a3aa6687e5b1a0d5460d4a5b7" + integrity sha512-Dl0Z9sdbMwrPslgOaGBZRGo3TASmmgTcqcUODr82MTYyJk6devXZM6MlQjpQKMJqlLJ6oL1w78U7IXFdPA5+ug== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^4.2.0" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-focus-visible@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz#1f7904904368a2d1180b220595d77b6f8a957868" + integrity sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-focus-within@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz#ac01ce80d3f2e8b2b3eac4ff84f8e15cd0057bc7" + integrity sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz#d5ff0bdf923c06686499ed2b12e125fe64054fed" + integrity sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw== + +postcss-image-set-function@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz#538e94e16716be47f9df0573b56bbaca86e1da53" + integrity sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-lab-function@^7.0.11: + version "7.0.11" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.11.tgz#455934181eea130f8e649c1f54692e1768046f6a" + integrity sha512-BEA4jId8uQe1gyjZZ6Bunb6ZsH2izks+v25AxQJDBtigXCjTLmCPWECwQpLTtcxH589MVxhs/9TAmRC6lUEmXQ== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.0" + "@csstools/utilities" "^2.0.0" + +postcss-loader@^7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== + dependencies: + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" + +postcss-logical@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-8.1.0.tgz#4092b16b49e3ecda70c4d8945257da403d167228" + integrity sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-merge-idents@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz#7b9c31c7bc823c94bec50f297f04e3c2b838ea65" + integrity sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-merge-longhand@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz#ba8a8d473617c34a36abbea8dda2b215750a065a" + integrity sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.1.1" + +postcss-merge-rules@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz#7aa539dceddab56019469c0edd7d22b64c3dea9d" + integrity sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.2" + postcss-selector-parser "^6.0.16" + +postcss-minify-font-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz#a0e574c02ee3f299be2846369211f3b957ea4c59" + integrity sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz#ca3eb55a7bdb48a1e187a55c6377be918743dbd6" + integrity sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== + dependencies: + colord "^2.9.3" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz#54551dec77b9a45a29c3cb5953bf7325a399ba08" + integrity sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== + dependencies: + browserslist "^4.23.0" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz#197f7d72e6dd19eed47916d575d69dc38b396aff" + integrity sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" + integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" + integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nesting@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.2.tgz#fde0d4df772b76d03b52eccc84372e8d1ca1402e" + integrity sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ== + dependencies: + "@csstools/selector-resolve-nested" "^3.1.0" + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + +postcss-normalize-charset@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz#1ec25c435057a8001dac942942a95ffe66f721e1" + integrity sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== + +postcss-normalize-display-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz#54f02764fed0b288d5363cbb140d6950dbbdd535" + integrity sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz#e982d284ec878b9b819796266f640852dbbb723a" + integrity sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz#f8006942fd0617c73f049dd8b6201c3a3040ecf3" + integrity sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz#e3cc6ad5c95581acd1fc8774b309dd7c06e5e363" + integrity sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz#40cb8726cef999de984527cbd9d1db1f3e9062c0" + integrity sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz#aaf8bbd34c306e230777e80f7f12a4b7d27ce06e" + integrity sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz#292792386be51a8de9a454cb7b5c58ae22db0f79" + integrity sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz#fbb009e6ebd312f8b2efb225c2fcc7cf32b400cd" + integrity sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-opacity-percentage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz#0b0db5ed5db5670e067044b8030b89c216e1eb0a" + integrity sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ== + +postcss-ordered-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz#366bb663919707093451ab70c3f99c05672aaae5" + integrity sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz#f5252b4a2ee16c68cd8a9029edb5370c4a9808af" + integrity sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-10.0.0.tgz#ba36ee4786ca401377ced17a39d9050ed772e5a9" + integrity sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.3.1.tgz#f3799f0f7a7ea384b3c16e073055c231d11bb3bf" + integrity sha512-8ZOOWVwQ0iMpfEYkYo+U6W7fE2dJ/tP6dtEFwPJ66eB5JjnFupfYh+y6zo+vWDO72nGhKOVdxwhTjfzcSNRg4Q== + dependencies: + "@csstools/postcss-alpha-function" "^1.0.0" + "@csstools/postcss-cascade-layers" "^5.0.2" + "@csstools/postcss-color-function" "^4.0.11" + "@csstools/postcss-color-function-display-p3-linear" "^1.0.0" + "@csstools/postcss-color-mix-function" "^3.0.11" + "@csstools/postcss-color-mix-variadic-function-arguments" "^1.0.1" + "@csstools/postcss-content-alt-text" "^2.0.7" + "@csstools/postcss-exponential-functions" "^2.0.9" + "@csstools/postcss-font-format-keywords" "^4.0.0" + "@csstools/postcss-gamut-mapping" "^2.0.11" + "@csstools/postcss-gradients-interpolation-method" "^5.0.11" + "@csstools/postcss-hwb-function" "^4.0.11" + "@csstools/postcss-ic-unit" "^4.0.3" + "@csstools/postcss-initial" "^2.0.1" + "@csstools/postcss-is-pseudo-class" "^5.0.3" + "@csstools/postcss-light-dark-function" "^2.0.10" + "@csstools/postcss-logical-float-and-clear" "^3.0.0" + "@csstools/postcss-logical-overflow" "^2.0.0" + "@csstools/postcss-logical-overscroll-behavior" "^2.0.0" + "@csstools/postcss-logical-resize" "^3.0.0" + "@csstools/postcss-logical-viewport-units" "^3.0.4" + "@csstools/postcss-media-minmax" "^2.0.9" + "@csstools/postcss-media-queries-aspect-ratio-number-values" "^3.0.5" + "@csstools/postcss-nested-calc" "^4.0.0" + "@csstools/postcss-normalize-display-values" "^4.0.0" + "@csstools/postcss-oklab-function" "^4.0.11" + "@csstools/postcss-progressive-custom-properties" "^4.2.0" + "@csstools/postcss-random-function" "^2.0.1" + "@csstools/postcss-relative-color-syntax" "^3.0.11" + "@csstools/postcss-scope-pseudo-class" "^4.0.1" + "@csstools/postcss-sign-functions" "^1.1.4" + "@csstools/postcss-stepped-value-functions" "^4.0.9" + "@csstools/postcss-text-decoration-shorthand" "^4.0.3" + "@csstools/postcss-trigonometric-functions" "^4.0.9" + "@csstools/postcss-unset-value" "^4.0.0" + autoprefixer "^10.4.21" + browserslist "^4.25.1" + css-blank-pseudo "^7.0.1" + css-has-pseudo "^7.0.3" + css-prefers-color-scheme "^10.0.0" + cssdb "^8.4.0" + postcss-attribute-case-insensitive "^7.0.1" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^7.0.11" + postcss-color-hex-alpha "^10.0.0" + postcss-color-rebeccapurple "^10.0.0" + postcss-custom-media "^11.0.6" + postcss-custom-properties "^14.0.6" + postcss-custom-selectors "^8.0.5" + postcss-dir-pseudo-class "^9.0.1" + postcss-double-position-gradients "^6.0.3" + postcss-focus-visible "^10.0.1" + postcss-focus-within "^9.0.1" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^6.0.0" + postcss-image-set-function "^7.0.0" + postcss-lab-function "^7.0.11" + postcss-logical "^8.1.0" + postcss-nesting "^13.0.2" + postcss-opacity-percentage "^3.0.0" + postcss-overflow-shorthand "^6.0.0" + postcss-page-break "^3.0.4" + postcss-place "^10.0.0" + postcss-pseudo-class-any-link "^10.0.1" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^8.0.1" + +postcss-pseudo-class-any-link@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz#06455431171bf44b84d79ebaeee9fd1c05946544" + integrity sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-reduce-idents@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz#b0d9c84316d2a547714ebab523ec7d13704cd486" + integrity sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz#4401297d8e35cb6e92c8e9586963e267105586ba" + integrity sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz#6fa2c586bdc091a7373caeee4be75a0f3e12965d" + integrity sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz#f2df9c6ac9f95e9fe4416ca41a957eda16130172" + integrity sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz#4d6af97eba65d73bc4d84bcb343e865d7dd16262" + integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-sort-media-queries@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz#4556b3f982ef27d3bac526b99b6c0d3359a6cf97" + integrity sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA== + dependencies: + sort-css-media-queries "2.2.0" + +postcss-svgo@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz#1d6e180d6df1fa8a3b30b729aaa9161e94f04eaa" + integrity sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.2.0" + +postcss-unique-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz#983ab308896b4bf3f2baaf2336e14e52c11a2088" + integrity sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-zindex@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-6.0.2.tgz#e498304b83a8b165755f53db40e2ea65a99b56e1" + integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== + +postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.5.4: + version "8.5.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== + dependencies: + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prism-react-renderer@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz#ac63b7f78e56c8f2b5e76e823a976d5ede77e35f" + integrity sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig== + dependencies: + "@types/prismjs" "^1.26.0" + clsx "^2.0.0" + +prismjs@^1.29.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9" + integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== + +property-information@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" + integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pupa@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.3.0.tgz#bc4036f9e8920c08ad472bc18fb600067cb83810" + integrity sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA== + dependencies: + escape-goat "^4.0.0" + +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@^19.0.0: + version "19.1.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.1.tgz#2daa9ff7f3ae384aeb30e76d5ee38c046dc89893" + integrity sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw== + dependencies: + scheduler "^0.26.0" + +react-fast-compare@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +"react-helmet-async@npm:@slorber/react-helmet-async@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz#11fbc6094605cf60aa04a28c17e0aab894b4ecff" + integrity sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A== + dependencies: + "@babel/runtime" "^7.12.5" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.2.0" + shallowequal "^1.1.0" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^19.1.1: + version "19.1.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.1.1.tgz#038ebe313cf18e1fd1235d51c87360eb87f7c36a" + integrity sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA== + +react-json-view-lite@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz#c7ff011c7cc80e9900abc7aa4916c6a5c6d6c1c6" + integrity sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g== + +react-loadable-ssr-addon-v5-slorber@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" + integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== + dependencies: + "@babel/runtime" "^7.10.3" + +"react-loadable@npm:@docusaurus/react-loadable@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz#de6c7f73c96542bd70786b8e522d535d69069dc4" + integrity sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ== + dependencies: + "@types/react" "*" + +react-router-config@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" + integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== + dependencies: + "@babel/runtime" "^7.1.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.3.4, react-router@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^19.0.0: + version "19.1.1" + resolved "https://registry.yarnpkg.com/react/-/react-19.1.1.tgz#06d9149ec5e083a67f9a1e39ce97b06a03b644af" + integrity sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ== + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recma-build-jsx@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz#c02f29e047e103d2fab2054954e1761b8ea253c4" + integrity sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew== + dependencies: + "@types/estree" "^1.0.0" + estree-util-build-jsx "^3.0.0" + vfile "^6.0.0" + +recma-jsx@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/recma-jsx/-/recma-jsx-1.0.1.tgz#58e718f45e2102ed0bf2fa994f05b70d76801a1a" + integrity sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w== + dependencies: + acorn-jsx "^5.0.0" + estree-util-to-js "^2.0.0" + recma-parse "^1.0.0" + recma-stringify "^1.0.0" + unified "^11.0.0" + +recma-parse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-parse/-/recma-parse-1.0.0.tgz#c351e161bb0ab47d86b92a98a9d891f9b6814b52" + integrity sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ== + dependencies: + "@types/estree" "^1.0.0" + esast-util-from-js "^2.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +recma-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-stringify/-/recma-stringify-1.0.0.tgz#54632030631e0c7546136ff9ef8fde8e7b44f130" + integrity sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g== + dependencies: + "@types/estree" "^1.0.0" + estree-util-to-js "^2.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +regenerate-unicode-properties@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" + integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regexpu-core@^6.2.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.3.1.tgz#fb8b707d0efe18e9464d3ae76ae1e3c96c8467ae" + integrity sha512-DzcswPr252wEr7Qz8AyAVbfyBDKLoYp6eRA1We2Fa9qirRFSdtkP5sHr3yglDKy2BbA0fd2T+j/CUSKes3FeVQ== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.2" + regjsgen "^0.8.0" + regjsparser "^0.12.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.2.1" + +registry-auth-token@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.1.0.tgz#3c659047ecd4caebd25bc1570a3aa979ae490eca" + integrity sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw== + dependencies: + "@pnpm/npm-conf" "^2.1.0" + +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== + dependencies: + jsesc "~3.0.2" + +rehype-raw@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-7.0.0.tgz#59d7348fd5dbef3807bbaa1d443efd2dd85ecee4" + integrity sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww== + dependencies: + "@types/hast" "^3.0.0" + hast-util-raw "^9.0.0" + vfile "^6.0.0" + +rehype-recma@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rehype-recma/-/rehype-recma-1.0.0.tgz#d68ef6344d05916bd96e25400c6261775411aa76" + integrity sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + hast-util-to-estree "^3.0.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remark-directive@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-3.0.1.tgz#689ba332f156cfe1118e849164cc81f157a3ef0a" + integrity sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-directive "^3.0.0" + micromark-extension-directive "^3.0.0" + unified "^11.0.0" + +remark-emoji@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-4.0.1.tgz#671bfda668047689e26b2078c7356540da299f04" + integrity sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg== + dependencies: + "@types/mdast" "^4.0.2" + emoticon "^4.0.1" + mdast-util-find-and-replace "^3.0.1" + node-emoji "^2.1.0" + unified "^11.0.4" + +remark-frontmatter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz#b68d61552a421ec412c76f4f66c344627dc187a2" + integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-frontmatter "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + unified "^11.0.0" + +remark-gfm@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" + integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +remark-mdx@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.1.tgz#047f97038bc7ec387aebb4b0a4fe23779999d845" + integrity sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg== + dependencies: + mdast-util-mdx "^3.0.0" + micromark-extension-mdxjs "^3.0.0" + +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-rehype@^11.0.0: + version "11.1.2" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.2.tgz#2addaadda80ca9bd9aa0da763e74d16327683b37" + integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +repeat-string@^1.0.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve@^1.19.0, resolve@^1.22.10: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + dependencies: + is-core-module "^2.16.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rtlcss@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-4.3.0.tgz#f8efd4d5b64f640ec4af8fa25b65bacd9e07cc97" + integrity sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + postcss "^8.4.21" + strip-json-comments "^3.1.1" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +scheduler@^0.26.0: + version "0.26.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337" + integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== + +schema-dts@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/schema-dts/-/schema-dts-1.1.5.tgz#9237725d305bac3469f02b292a035107595dc324" + integrity sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg== + +schema-utils@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0, schema-utils@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== + dependencies: + semver "^7.3.5" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-handler@^6.1.6: + version "6.1.6" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.6.tgz#50803c1d3e947cd4a341d617f8209b22bd76cfa1" + integrity sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + mime-types "2.1.18" + minimatch "3.1.2" + path-is-inside "1.0.2" + path-to-regexp "3.3.0" + range-parser "1.2.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.19.0" + +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== + +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.0.6: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sirv@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.2.tgz#6ce1deb43f6f177c68bc59cf93632f54e3ae6b72" + integrity sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw== + dependencies: + "@types/node" "^17.0.5" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.2.4" + +skin-tone@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/skin-tone/-/skin-tone-2.0.0.tgz#4e3933ab45c0d4f4f781745d64b9f4c208e41237" + integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== + dependencies: + unicode-emoji-modifier-base "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sort-css-media-queries@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz#aa33cf4a08e0225059448b6c40eddbf9f1c8334c" + integrity sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA== + +source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.0: + version "0.7.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02" + integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +srcset@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" + integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +std-env@^3.7.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1" + integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +style-to-js@^1.0.0: + version "1.1.17" + resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.17.tgz#488b1558a8c1fd05352943f088cc3ce376813d83" + integrity sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA== + dependencies: + style-to-object "1.0.9" + +style-to-object@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.9.tgz#35c65b713f4a6dba22d3d0c61435f965423653f0" + integrity sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw== + dependencies: + inline-style-parser "0.2.4" + +stylehacks@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.1.tgz#543f91c10d17d00a440430362d419f79c25545a6" + integrity sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== + dependencies: + browserslist "^4.23.0" + postcss-selector-parser "^6.0.16" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^3.0.2, svgo@^3.2.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.3.tgz#4b67b635b2d97578a06a2713d2f04800c237e99b" + integrity sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg== + +terser-webpack-plugin@^5.3.11, terser-webpack-plugin@^5.3.9: + version "5.3.14" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" + +terser@^5.10.0, terser@^5.15.1, terser@^5.31.1: + version "5.44.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.0.tgz#ebefb8e5b8579d93111bfdfc39d2cf63879f4a82" + integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.15.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-invariant@^1.0.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-warning@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tinypool@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" + integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + +tslib@^2.0.3, tslib@^2.6.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.13.0, type-fest@^2.5.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +undici-types@~7.12.0: + version "7.12.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.12.0.tgz#15c5c7475c2a3ba30659529f5cdb4674b622fafb" + integrity sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-emoji-modifier-base@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" + integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" + integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" + integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== + +unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: + version "11.0.5" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" + integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz#d94da4df596529d1faa3de506202f0c9a23f2200" + integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +update-notifier@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" + is-installed-globally "^0.4.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utility-types@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vfile-location@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.3.tgz#cb9eacd20f2b6426d19451e0eafa3d0a846225c3" + integrity sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg== + dependencies: + "@types/unist" "^3.0.0" + vfile "^6.0.0" + +vfile-message@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.3.tgz#87b44dddd7b70f0641c2e3ed0864ba73e2ea8df4" + integrity sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0, vfile@^6.0.1: + version "6.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + +watchpack@^2.4.1: + version "2.4.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" + integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +webpack-bundle-analyzer@^4.10.2: + version "4.10.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" + integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + commander "^7.2.0" + debounce "^1.2.1" + escape-string-regexp "^4.0.0" + gzip-size "^6.0.0" + html-escaper "^2.0.2" + opener "^1.5.2" + picocolors "^1.0.0" + sirv "^2.0.3" + ws "^7.3.1" + +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.15.2: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" + +webpack-merge@^5.9.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-merge@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-6.0.1.tgz#50c776868e080574725abc5869bd6e4ef0a16c6a" + integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.1" + +webpack-sources@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" + integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== + +webpack@^5.88.1, webpack@^5.95.0: + version "5.101.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.101.3.tgz#3633b2375bb29ea4b06ffb1902734d977bc44346" + integrity sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.8" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.15.0" + acorn-import-phases "^1.0.3" + browserslist "^4.24.0" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.3" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^4.3.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.1" + webpack-sources "^3.3.3" + +webpackbar@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-6.0.1.tgz#5ef57d3bf7ced8b19025477bc7496ea9d502076b" + integrity sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q== + dependencies: + ansi-escapes "^4.3.2" + chalk "^4.1.2" + consola "^3.2.3" + figures "^3.2.0" + markdown-table "^2.0.0" + pretty-time "^1.1.0" + std-env "^3.7.0" + wrap-ansi "^7.0.0" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +wildcard@^2.0.0, wildcard@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.3.1: + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@^8.13.0: + version "8.18.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" + integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== + +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yocto-queue@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.1.tgz#36d7c4739f775b3cbc28e6136e21aa057adec418" + integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==